home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / mac / source / music4c.sit / Music4C Folder / Sources Folder / gen.c < prev    next >
MacBinary  |  1990-09-08  |  13.4 KB  |  [TEXT/KAHL]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
10% dexvert Jesper Olsen Module (music/jesperOlsen) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, Sat Sep 8 19:38:19 1990, modified Sat Sep 8 19:38:19 1990, creator Think C, type ASCII, 13061 bytes "gen.c" , at 0x3385 348 bytes resource default (weak)
99% file data default
49% TrID Macintosh plain text (MacBinary) default
33% TrID TTComp archive compressed (bin-2K) default (weak)
16% TrID MacBinary 2 default (weak)
0% TrID Sybase iAnywhere database files default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[KAHL]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 05 67 65 6e 2e 63 00 | 00 00 00 00 00 00 00 00 |..gen.c.|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4b 41 48 | 4c 00 00 00 00 00 00 00 |.TEXTKAH|L.......|
|00000050| 00 00 00 00 00 33 05 00 | 00 01 5c a3 0f 31 6b a3 |.....3..|..\..1k.|
|00000060| 0f 31 6b 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.1k.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 4b cc 00 00 |........|....K...|
|00000080| 2f 2a 0d 2a 20 a9 20 47 | 72 61 65 6d 65 20 47 65 |/*.* . G|raeme Ge|
|00000090| 72 72 61 72 64 20 31 39 | 39 30 0d 2a 20 46 61 63 |rrard 19|90.* Fac|
|000000a0| 75 6c 74 79 20 6f 66 20 | 4d 75 73 69 63 2c 20 55 |ulty of |Music, U|
|000000b0| 6e 69 76 65 72 73 69 74 | 79 20 6f 66 20 4d 65 6c |niversit|y of Mel|
|000000c0| 62 6f 75 72 6e 65 0d 2a | 20 50 61 72 6b 76 69 6c |bourne.*| Parkvil|
|000000d0| 6c 65 20 56 69 63 74 6f | 72 69 61 20 33 30 35 32 |le Victo|ria 3052|
|000000e0| 20 41 75 73 74 72 61 6c | 69 61 2e 0d 2a 0d 2a 20 | Austral|ia..*.* |
|000000f0| 41 52 50 41 4e 45 54 3a | 20 67 72 61 65 40 6d 75 |ARPANET:| grae@mu|
|00000100| 72 64 75 2e 75 63 73 2e | 75 6e 69 6d 65 6c 62 2e |rdu.ucs.|unimelb.|
|00000110| 65 64 75 2e 61 75 0d 2a | 20 74 65 6c 65 70 68 6f |edu.au.*| telepho|
|00000120| 6e 65 3a 20 28 36 31 33 | 29 20 33 34 34 20 34 31 |ne: (613|) 344 41|
|00000130| 32 37 2c 20 46 61 78 3a | 20 28 36 31 33 29 20 33 |27, Fax:| (613) 3|
|00000140| 34 34 20 35 33 34 36 0d | 2a 2f 0d 0d 0d 23 69 6e |44 5346.|*/...#in|
|00000150| 63 6c 75 64 65 09 22 4d | 75 73 69 63 34 43 2e 68 |clude."M|usic4C.h|
|00000160| 22 0d 23 69 6e 63 6c 75 | 64 65 09 22 4d 75 73 69 |".#inclu|de."Musi|
|00000170| 63 34 43 5f 50 72 6f 74 | 6f 74 79 70 65 2e 68 22 |c4C_Prot|otype.h"|
|00000180| 0d 23 69 6e 63 6c 75 64 | 65 09 22 45 72 72 6f 72 |.#includ|e."Error|
|00000190| 41 6c 65 72 74 2e 68 22 | 0d 23 69 6e 63 6c 75 64 |Alert.h"|.#includ|
|000001a0| 65 09 3c 6d 61 74 68 2e | 68 3e 0d 23 64 65 66 69 |e.<math.|h>.#defi|
|000001b0| 6e 65 09 09 54 57 4f 50 | 49 09 36 2e 32 38 33 31 |ne..TWOP|I.6.2831|
|000001c0| 38 35 33 30 38 0d 0d 23 | 64 65 66 69 6e 65 09 09 |85308..#|define..|
|000001d0| 41 44 44 09 09 09 31 0d | 23 64 65 66 69 6e 65 09 |ADD...1.|#define.|
|000001e0| 09 53 55 42 54 52 41 43 | 54 09 32 0d 23 64 65 66 |.SUBTRAC|T.2.#def|
|000001f0| 69 6e 65 09 09 4d 55 4c | 54 49 50 4c 59 09 33 0d |ine..MUL|TIPLY.3.|
|00000200| 23 64 65 66 69 6e 65 09 | 09 44 49 56 49 44 45 09 |#define.|.DIVIDE.|
|00000210| 09 34 0d 0d 23 64 65 66 | 69 6e 65 09 41 42 53 28 |.4..#def|ine.ABS(|
|00000220| 78 29 09 28 28 78 29 20 | 3e 3d 20 30 2e 30 20 3f |x).((x) |>= 0.0 ?|
|00000230| 20 28 78 29 20 3a 20 2d | 28 78 29 29 0d 0d 64 6f | (x) : -|(x))..do|
|00000240| 75 62 6c 65 09 2a 46 5b | 4d 41 58 46 55 4e 43 53 |uble.*F[|MAXFUNCS|
|00000250| 5d 3b 0d 42 6f 6f 6c 65 | 61 6e 09 64 65 66 69 6e |];.Boole|an.defin|
|00000260| 65 64 5f 66 75 6e 63 73 | 5b 4d 41 58 46 55 4e 43 |ed_funcs|[MAXFUNC|
|00000270| 53 5d 3b 0d 73 74 61 74 | 69 63 09 69 6e 74 09 09 |S];.stat|ic.int..|
|00000280| 73 63 61 6c 65 5f 66 6c | 61 67 3b 0d 65 78 74 65 |scale_fl|ag;.exte|
|00000290| 72 6e 09 4f 53 45 72 72 | 09 74 68 65 45 72 72 3b |rn.OSErr|.theErr;|
|000002a0| 0d 0d 65 78 74 65 72 6e | 09 76 6f 69 64 09 69 6e |..extern|.void.in|
|000002b0| 69 74 5f 66 75 6e 63 73 | 28 76 6f 69 64 29 3b 0d |it_funcs|(void);.|
|000002c0| 65 78 74 65 72 6e 09 76 | 6f 69 64 09 66 72 65 65 |extern.v|oid.free|
|000002d0| 5f 66 75 6e 63 73 28 76 | 6f 69 64 29 3b 0d 65 78 |_funcs(v|oid);.ex|
|000002e0| 74 65 72 6e 09 76 6f 69 | 64 09 67 65 6e 28 69 6e |tern.voi|d.gen(in|
|000002f0| 74 2c 20 64 6f 75 62 6c | 65 20 2a 29 3b 0d 65 78 |t, doubl|e *);.ex|
|00000300| 74 65 72 6e 09 53 74 72 | 32 35 35 09 74 68 65 4d |tern.Str|255.theM|
|00000310| 65 73 73 31 2c 20 74 68 | 65 4d 65 73 73 32 3b 0d |ess1, th|eMess2;.|
|00000320| 65 78 74 65 72 6e 09 77 | 72 69 74 65 5f 66 75 6e |extern.w|rite_fun|
|00000330| 63 28 69 6e 74 2c 20 64 | 6f 75 62 6c 65 20 2a 29 |c(int, d|ouble *)|
|00000340| 3b 0d 0d 76 6f 69 64 09 | 67 65 6e 32 28 69 6e 74 |;..void.|gen2(int|
|00000350| 2c 20 64 6f 75 62 6c 65 | 20 2a 2c 20 64 6f 75 62 |, double| *, doub|
|00000360| 6c 65 20 2a 29 3b 0d 76 | 6f 69 64 09 67 65 6e 35 |le *);.v|oid.gen5|
|00000370| 28 69 6e 74 2c 20 64 6f | 75 62 6c 65 20 2a 2c 20 |(int, do|uble *, |
|00000380| 64 6f 75 62 6c 65 20 2a | 29 3b 0d 76 6f 69 64 09 |double *|);.void.|
|00000390| 67 65 6e 36 28 69 6e 74 | 2c 20 64 6f 75 62 6c 65 |gen6(int|, double|
|000003a0| 20 2a 2c 20 64 6f 75 62 | 6c 65 20 2a 29 3b 0d 76 | *, doub|le *);.v|
|000003b0| 6f 69 64 09 67 65 6e 37 | 28 69 6e 74 2c 20 64 6f |oid.gen7|(int, do|
|000003c0| 75 62 6c 65 20 2a 2c 20 | 64 6f 75 62 6c 65 20 2a |uble *, |double *|
|000003d0| 29 3b 0d 76 6f 69 64 09 | 67 65 6e 39 28 69 6e 74 |);.void.|gen9(int|
|000003e0| 2c 20 64 6f 75 62 6c 65 | 20 2a 2c 20 64 6f 75 62 |, double| *, doub|
|000003f0| 6c 65 20 2a 29 3b 0d 76 | 6f 69 64 09 67 65 6e 31 |le *);.v|oid.gen1|
|00000400| 30 28 69 6e 74 2c 20 64 | 6f 75 62 6c 65 20 2a 2c |0(int, d|ouble *,|
|00000410| 20 64 6f 75 62 6c 65 20 | 2a 29 3b 0d 76 6f 69 64 | double |*);.void|
|00000420| 09 67 65 6e 31 31 28 69 | 6e 74 2c 20 64 6f 75 62 |.gen11(i|nt, doub|
|00000430| 6c 65 20 2a 2c 20 64 6f | 75 62 6c 65 20 2a 29 3b |le *, do|uble *);|
|00000440| 0d 76 6f 69 64 09 67 65 | 6e 31 32 28 69 6e 74 2c |.void.ge|n12(int,|
|00000450| 20 64 6f 75 62 6c 65 20 | 2a 2c 20 64 6f 75 62 6c | double |*, doubl|
|00000460| 65 20 2a 29 3b 0d 76 6f | 69 64 09 67 65 6e 32 30 |e *);.vo|id.gen20|
|00000470| 28 69 6e 74 2c 20 64 6f | 75 62 6c 65 20 2a 2c 20 |(int, do|uble *, |
|00000480| 64 6f 75 62 6c 65 20 2a | 29 3b 0d 0d 76 6f 69 64 |double *|);..void|
|00000490| 09 66 6e 73 63 6c 28 64 | 6f 75 62 6c 65 20 2a 2c |.fnscl(d|ouble *,|
|000004a0| 20 69 6e 74 29 3b 0d 0d | 0d 0d 0d 76 6f 69 64 09 | int);..|...void.|
|000004b0| 69 6e 69 74 5f 66 75 6e | 63 73 28 29 0d 7b 0d 09 |init_fun|cs().{..|
|000004c0| 72 65 67 69 73 74 65 72 | 20 69 6e 74 20 69 3b 0d |register| int i;.|
|000004d0| 09 42 6f 6f 6c 65 61 6e | 09 2a 62 70 3b 0d 09 66 |.Boolean|.*bp;..f|
|000004e0| 6f 72 20 28 20 69 20 3d | 20 30 2c 20 62 70 20 3d |or ( i =| 0, bp =|
|000004f0| 20 64 65 66 69 6e 65 64 | 5f 66 75 6e 63 73 3b 20 | defined|_funcs; |
|00000500| 69 3c 20 4d 41 58 46 55 | 4e 43 53 3b 20 69 2b 2b |i< MAXFU|NCS; i++|
|00000510| 29 20 7b 0d 09 09 2a 62 | 70 2b 2b 20 3d 20 46 41 |) {...*b|p++ = FA|
|00000520| 4c 53 45 3b 0d 09 7d 0d | 7d 0d 0d 76 6f 69 64 09 |LSE;..}.|}..void.|
|00000530| 66 72 65 65 5f 66 75 6e | 63 73 28 29 0d 7b 0d 09 |free_fun|cs().{..|
|00000540| 72 65 67 69 73 74 65 72 | 20 69 6e 74 20 69 3b 0d |register| int i;.|
|00000550| 09 66 6f 72 20 28 20 69 | 20 3d 20 30 3b 20 69 3c |.for ( i| = 0; i<|
|00000560| 20 4d 41 58 46 55 4e 43 | 53 3b 20 69 2b 2b 29 20 | MAXFUNC|S; i++) |
|00000570| 7b 0d 09 09 69 66 20 28 | 64 65 66 69 6e 65 64 5f |{...if (|defined_|
|00000580| 66 75 6e 63 73 5b 69 5d | 20 29 20 7b 0d 09 09 09 |funcs[i]| ) {....|
|00000590| 44 69 73 70 6f 73 50 74 | 72 28 28 50 74 72 29 46 |DisposPt|r((Ptr)F|
|000005a0| 5b 69 5d 29 3b 0d 09 09 | 64 65 66 69 6e 65 64 5f |[i]);...|defined_|
|000005b0| 66 75 6e 63 73 5b 69 5d | 20 3d 20 46 41 4c 53 45 |funcs[i]| = FALSE|
|000005c0| 3b 0d 09 09 7d 0d 09 7d | 0d 7d 0d 0d 76 6f 69 64 |;...}..}|.}..void|
|000005d0| 09 67 65 6e 28 6e 70 61 | 72 67 73 2c 20 70 29 0d |.gen(npa|rgs, p).|
|000005e0| 09 64 6f 75 62 6c 65 20 | 2a 70 3b 0d 09 69 6e 74 |.double |*p;..int|
|000005f0| 20 6e 70 61 72 67 73 3b | 0d 7b 0d 09 72 65 67 69 | npargs;|.{..regi|
|00000600| 73 74 65 72 09 6c 6f 6e | 67 09 69 3b 0d 09 65 78 |ster.lon|g.i;..ex|
|00000610| 74 65 72 6e 09 63 68 61 | 72 09 09 61 53 74 72 69 |tern.cha|r..aStri|
|00000620| 6e 67 31 5b 32 35 36 5d | 3b 0d 09 65 78 74 65 72 |ng1[256]|;..exter|
|00000630| 6e 09 63 68 61 72 09 09 | 61 53 74 72 69 6e 67 32 |n.char..|aString2|
|00000640| 5b 32 35 36 5d 3b 0d 09 | 69 6e 74 20 67 65 6e 6e |[256];..|int genn|
|00000650| 6f 3b 0d 09 69 6e 74 20 | 67 65 6e 72 61 77 3b 0d |o;..int |genraw;.|
|00000660| 09 69 6e 74 20 70 72 69 | 6e 74 5f 73 77 69 74 63 |.int pri|nt_switc|
|00000670| 68 20 3d 20 30 3b 0d 09 | 69 6e 74 09 6c 65 6e 3b |h = 0;..|int.len;|
|00000680| 0d 09 69 6e 74 09 66 6e | 6f 3b 0d 0d 09 67 65 6e |..int.fn|o;...gen|
|00000690| 72 61 77 20 3d 20 28 69 | 6e 74 29 20 2a 28 70 2b |raw = (i|nt) *(p+|
|000006a0| 32 29 3b 0d 09 67 65 6e | 6e 6f 20 3d 20 67 65 6e |2);..gen|no = gen|
|000006b0| 72 61 77 20 25 20 31 30 | 30 3b 0d 09 73 63 61 6c |raw % 10|0;..scal|
|000006c0| 65 5f 66 6c 61 67 20 3d | 20 31 3b 0d 09 73 77 69 |e_flag =| 1;..swi|
|000006d0| 74 63 68 28 20 67 65 6e | 72 61 77 20 2d 20 67 65 |tch( gen|raw - ge|
|000006e0| 6e 6e 6f 29 20 7b 0d 09 | 09 63 61 73 65 20 30 3a |nno) {..|.case 0:|
|000006f0| 0d 09 09 09 62 72 65 61 | 6b 3b 0d 09 09 63 61 73 |....brea|k;...cas|
|00000700| 65 20 31 30 30 3a 0d 09 | 09 09 09 70 72 69 6e 74 |e 100:..|...print|
|00000710| 5f 73 77 69 74 63 68 20 | 3d 20 31 3b 0d 09 09 09 |_switch |= 1;....|
|00000720| 09 62 72 65 61 6b 3b 0d | 09 09 63 61 73 65 20 32 |.break;.|..case 2|
|00000730| 30 30 3a 0d 09 09 09 09 | 73 63 61 6c 65 5f 66 6c |00:.....|scale_fl|
|00000740| 61 67 20 3d 20 30 3b 0d | 09 09 09 09 62 72 65 61 |ag = 0;.|....brea|
|00000750| 6b 3b 0d 09 09 64 65 66 | 61 75 6c 74 3a 0d 09 09 |k;...def|ault:...|
|00000760| 09 73 70 72 69 6e 74 66 | 28 61 53 74 72 69 6e 67 |.sprintf|(aString|
|00000770| 31 2c 20 22 75 6e 6b 6e | 6f 77 6e 20 67 65 6e 20 |1, "unkn|own gen |
|00000780| 73 77 69 74 63 68 20 25 | 64 22 2c 20 28 67 65 6e |switch %|d", (gen|
|00000790| 72 61 77 20 2d 20 67 65 | 6e 6e 6f 29 29 3b 0d 09 |raw - ge|nno));..|
|000007a0| 09 09 43 74 6f 50 73 74 | 72 28 61 53 74 72 69 6e |..CtoPst|r(aStrin|
|000007b0| 67 31 29 3b 0d 09 09 09 | 73 70 72 69 6e 74 66 28 |g1);....|sprintf(|
|000007c0| 61 53 74 72 69 6e 67 32 | 2c 20 22 66 6f 72 20 66 |aString2|, "for f|
|000007d0| 75 6e 63 74 69 6f 6e 20 | 6e 6f 2e 20 25 64 22 2c |unction |no. %d",|
|000007e0| 20 28 69 6e 74 29 20 2a | 70 29 3b 0d 09 09 09 43 | (int) *|p);....C|
|000007f0| 74 6f 50 73 74 72 28 61 | 53 74 72 69 6e 67 32 29 |toPstr(a|String2)|
|00000800| 3b 0d 09 09 09 50 73 74 | 72 69 6e 67 43 6f 70 79 |;....Pst|ringCopy|
|00000810| 28 28 63 68 61 72 20 2a | 29 74 68 65 4d 65 73 73 |((char *|)theMess|
|00000820| 31 2c 20 28 63 68 61 72 | 20 2a 29 61 53 74 72 69 |1, (char| *)aStri|
|00000830| 6e 67 31 29 3b 0d 09 09 | 09 50 73 74 72 69 6e 67 |ng1);...|.Pstring|
|00000840| 43 6f 70 79 28 28 63 68 | 61 72 20 2a 29 74 68 65 |Copy((ch|ar *)the|
|00000850| 4d 65 73 73 32 2c 20 28 | 63 68 61 72 20 2a 29 61 |Mess2, (|char *)a|
|00000860| 53 74 72 69 6e 67 32 29 | 3b 0d 09 09 09 4f 53 45 |String2)|;....OSE|
|00000870| 72 72 6f 72 28 74 68 65 | 4d 65 73 73 31 2c 20 74 |rror(the|Mess1, t|
|00000880| 68 65 4d 65 73 73 32 2c | 20 4e 49 4c 29 3b 0d 09 |heMess2,| NIL);..|
|00000890| 7d 0d 0d 09 66 6e 6f 20 | 3d 20 28 69 6e 74 29 20 |}...fno |= (int) |
|000008a0| 2a 70 3b 0d 09 6c 65 6e | 20 3d 20 2a 28 70 2b 33 |*p;..len| = *(p+3|
|000008b0| 29 3b 0d 09 69 66 20 28 | 64 65 66 69 6e 65 64 5f |);..if (|defined_|
|000008c0| 66 75 6e 63 73 5b 20 28 | 69 6e 74 29 20 2a 70 5d |funcs[ (|int) *p]|
|000008d0| 20 29 20 7b 0d 09 09 2f | 2a 20 69 2e 65 2e 20 61 | ) {.../|* i.e. a|
|000008e0| 6c 72 65 61 64 79 20 64 | 65 66 69 6e 65 64 2c 20 |lready d|efined, |
|000008f0| 66 72 65 65 20 73 70 61 | 63 65 20 61 6e 64 20 72 |free spa|ce and r|
|00000900| 65 64 65 66 69 6e 65 20 | 69 74 20 69 66 20 64 69 |edefine |it if di|
|00000910| 66 66 65 72 65 6e 74 20 | 73 69 7a 65 20 2a 2f 0d |fferent |size */.|
|00000920| 09 09 69 66 20 28 6c 65 | 6e 20 3d 3d 20 28 69 6e |..if (le|n == (in|
|00000930| 74 29 2a 46 5b 66 6e 6f | 5d 29 0d 09 09 09 2f 2a |t)*F[fno|])..../*|
|00000940| 20 73 61 6d 65 20 73 69 | 7a 65 2c 20 64 6f 20 6e | same si|ze, do n|
|00000950| 6f 74 68 69 6e 67 20 2a | 2f 0d 09 09 09 3b 0d 09 |othing *|/....;..|
|00000960| 09 65 6c 73 65 20 7b 20 | 2f 2a 20 64 69 66 66 65 |.else { |/* diffe|
|00000970| 72 65 6e 74 20 73 69 7a | 65 20 2a 2f 0d 09 09 09 |rent siz|e */....|
|00000980| 44 69 73 70 6f 73 50 74 | 72 28 28 50 74 72 29 46 |DisposPt|r((Ptr)F|
|00000990| 5b 66 6e 6f 5d 29 3b 0d | 09 2f 2a 20 72 65 73 65 |[fno]);.|./* rese|
|000009a0| 74 20 74 68 69 73 2c 20 | 73 6f 20 74 68 61 74 20 |t this, |so that |
|000009b0| 66 75 6e 63 20 67 65 74 | 73 20 72 65 64 65 66 69 |func get|s redefi|
|000009c0| 6e 65 64 20 69 6e 20 6e | 65 78 74 20 63 6f 64 65 |ned in n|ext code|
|000009d0| 20 62 6c 6f 63 6b 20 2a | 2f 0d 09 09 09 64 65 66 | block *|/....def|
|000009e0| 69 6e 65 64 5f 66 75 6e | 63 73 5b 66 6e 6f 5d 20 |ined_fun|cs[fno] |
|000009f0| 3d 20 46 41 4c 53 45 3b | 0d 09 09 7d 0d 09 7d 0d |= FALSE;|...}..}.|
|00000a00| 09 0d 09 69 66 20 28 20 | 21 64 65 66 69 6e 65 64 |...if ( |!defined|
|00000a10| 5f 66 75 6e 63 73 5b 66 | 6e 6f 5d 20 29 20 7b 0d |_funcs[f|no] ) {.|
|00000a20| 09 09 64 65 66 69 6e 65 | 64 5f 66 75 6e 63 73 5b |..define|d_funcs[|
|00000a30| 66 6e 6f 5d 20 3d 20 54 | 52 55 45 3b 0d 09 09 46 |fno] = T|RUE;...F|
|00000a40| 5b 66 6e 6f 5d 20 3d 20 | 28 64 6f 75 62 6c 65 20 |[fno] = |(double |
|00000a50| 2a 29 20 4e 65 77 50 74 | 72 28 20 28 6c 65 6e 2b |*) NewPt|r( (len+|
|00000a60| 31 29 20 2a 20 73 69 7a | 65 6f 66 28 64 6f 75 62 |1) * siz|eof(doub|
|00000a70| 6c 65 29 29 3b 0d 09 09 | 69 66 20 28 20 28 74 68 |le));...|if ( (th|
|00000a80| 65 45 72 72 20 3d 20 4d | 65 6d 45 72 72 6f 72 28 |eErr = M|emError(|
|00000a90| 29 29 20 20 21 3d 20 6e | 6f 45 72 72 20 29 7b 0d |)) != n|oErr ){.|
|00000aa0| 09 09 09 50 73 74 72 69 | 6e 67 43 6f 70 79 28 28 |...Pstri|ngCopy((|
|00000ab0| 63 68 61 72 20 2a 29 74 | 68 65 4d 65 73 73 31 2c |char *)t|heMess1,|
|00000ac0| 20 22 5c 70 45 72 72 6f | 72 20 61 6c 6c 6f 63 61 | "\pErro|r alloca|
|00000ad0| 74 69 6e 67 20 6d 65 6d | 6f 72 79 20 69 6e 20 67 |ting mem|ory in g|
|00000ae0| 65 6e 22 29 3b 0d 09 09 | 09 4f 53 45 72 72 6f 72 |en");...|.OSError|
|00000af0| 28 74 68 65 4d 65 73 73 | 31 2c 20 4e 49 4c 2c 20 |(theMess|1, NIL, |
|00000b00| 4e 49 4c 29 3b 0d 09 09 | 7d 0d 09 09 2a 46 5b 66 |NIL);...|}...*F[f|
|00000b10| 6e 6f 5d 20 3d 20 28 64 | 6f 75 62 6c 65 29 6c 65 |no] = (d|ouble)le|
|00000b20| 6e 3b 0d 09 09 66 6f 72 | 20 28 20 69 20 3d 20 31 |n;...for| ( i = 1|
|00000b30| 3b 20 69 20 3c 20 6c 65 | 6e 2b 31 3b 20 69 20 2b |; i < le|n+1; i +|
|00000b40| 2b 20 29 0d 09 09 09 2a | 28 46 5b 66 6e 6f 5d 2b |+ )....*|(F[fno]+|
|00000b50| 69 29 20 3d 20 30 2e 30 | 3b 0d 09 7d 0d 09 73 77 |i) = 0.0|;..}..sw|
|00000b60| 69 74 63 68 28 20 41 42 | 53 28 67 65 6e 6e 6f 29 |itch( AB|S(genno)|
|00000b70| 20 29 20 7b 0d 09 09 63 | 61 73 65 20 32 3a 0d 09 | ) {...c|ase 2:..|
|00000b80| 09 09 69 66 20 28 20 6c | 65 6e 20 21 3d 20 35 31 |..if ( l|en != 51|
|00000b90| 32 20 29 20 7b 0d 09 09 | 09 09 50 73 74 72 69 6e |2 ) {...|..Pstrin|
|00000ba0| 67 43 6f 70 79 28 28 63 | 68 61 72 20 2a 29 74 68 |gCopy((c|har *)th|
|00000bb0| 65 4d 65 73 73 31 2c 20 | 22 5c 70 46 75 6e 63 74 |eMess1, |"\pFunct|
|00000bc0| 69 6f 6e 73 20 67 65 6e | 65 72 61 74 65 64 20 62 |ions gen|erated b|
|00000bd0| 79 20 67 65 6e 32 20 6d | 75 73 74 20 62 65 20 35 |y gen2 m|ust be 5|
|00000be0| 31 32 20 6c 6f 6e 67 22 | 29 3b 0d 09 09 09 09 4f |12 long"|);.....O|
|00000bf0| 53 45 72 72 6f 72 28 74 | 68 65 4d 65 73 73 31 2c |SError(t|heMess1,|
|00000c00| 20 4e 49 4c 2c 20 4e 49 | 4c 29 3b 0d 09 09 09 7d | NIL, NI|L);....}|
|00000c10| 0d 09 09 09 67 65 6e 32 | 28 6e 70 61 72 67 73 2c |....gen2|(npargs,|
|00000c20| 20 70 2c 20 46 5b 66 6e | 6f 5d 29 3b 0d 09 09 09 | p, F[fn|o]);....|
|00000c30| 62 72 65 61 6b 3b 0d 09 | 09 63 61 73 65 20 35 3a |break;..|.case 5:|
|00000c40| 0d 09 09 09 67 65 6e 35 | 28 6e 70 61 72 67 73 2c |....gen5|(npargs,|
|00000c50| 20 70 2c 20 46 5b 66 6e | 6f 5d 29 3b 0d 09 09 09 | p, F[fn|o]);....|
|00000c60| 62 72 65 61 6b 3b 0d 09 | 09 63 61 73 65 20 37 3a |break;..|.case 7:|
|00000c70| 0d 09 09 09 67 65 6e 37 | 28 6e 70 61 72 67 73 2c |....gen7|(npargs,|
|00000c80| 20 70 2c 20 46 5b 66 6e | 6f 5d 29 3b 0d 09 09 09 | p, F[fn|o]);....|
|00000c90| 62 72 65 61 6b 3b 0d 09 | 09 63 61 73 65 20 39 3a |break;..|.case 9:|
|00000ca0| 0d 09 09 09 67 65 6e 39 | 28 6e 70 61 72 67 73 2c |....gen9|(npargs,|
|00000cb0| 20 70 2c 20 46 5b 66 6e | 6f 5d 29 3b 0d 09 09 09 | p, F[fn|o]);....|
|00000cc0| 62 72 65 61 6b 3b 0d 09 | 09 63 61 73 65 20 31 31 |break;..|.case 11|
|00000cd0| 3a 0d 09 09 09 67 65 6e | 31 31 28 6e 70 61 72 67 |:....gen|11(nparg|
|00000ce0| 73 2c 20 70 2c 20 46 5b | 66 6e 6f 5d 29 3b 0d 09 |s, p, F[|fno]);..|
|00000cf0| 09 09 62 72 65 61 6b 3b | 0d 09 09 63 61 73 65 20 |..break;|...case |
|00000d00| 31 32 3a 0d 09 09 09 67 | 65 6e 31 32 28 6e 70 61 |12:....g|en12(npa|
|00000d10| 72 67 73 2c 20 70 2c 20 | 46 5b 66 6e 6f 5d 29 3b |rgs, p, |F[fno]);|
|00000d20| 0d 09 09 09 62 72 65 61 | 6b 3b 0d 09 09 63 61 73 |....brea|k;...cas|
|00000d30| 65 20 32 30 3a 0d 09 09 | 09 67 65 6e 32 30 28 6e |e 20:...|.gen20(n|
|00000d40| 70 61 72 67 73 2c 20 70 | 2c 20 46 5b 66 6e 6f 5d |pargs, p|, F[fno]|
|00000d50| 29 3b 0d 09 09 09 62 72 | 65 61 6b 3b 0d 09 09 64 |);....br|eak;...d|
|00000d60| 65 66 61 75 6c 74 3a 0d | 09 09 09 73 70 72 69 6e |efault:.|...sprin|
|00000d70| 74 66 28 28 63 68 61 72 | 20 2a 29 61 53 74 72 69 |tf((char| *)aStri|
|00000d80| 6e 67 31 2c 20 22 45 72 | 72 6f 72 20 67 65 6e 65 |ng1, "Er|ror gene|
|00000d90| 72 61 74 69 6e 67 20 66 | 75 6e 63 74 69 6f 6e 20 |rating f|unction |
|00000da0| 6e 75 6d 62 65 72 20 25 | 64 22 2c 20 66 6e 6f 20 |number %|d", fno |
|00000db0| 29 3b 0d 09 09 09 43 74 | 6f 50 73 74 72 28 28 63 |);....Ct|oPstr((c|
|00000dc0| 68 61 72 20 2a 29 61 53 | 74 72 69 6e 67 31 29 3b |har *)aS|tring1);|
|00000dd0| 0d 09 09 09 73 70 72 69 | 6e 74 66 28 28 63 68 61 |....spri|ntf((cha|
|00000de0| 72 20 2a 29 61 53 74 72 | 69 6e 67 32 2c 20 22 67 |r *)aStr|ing2, "g|
|00000df0| 65 6e 20 66 75 6e 63 74 | 69 6f 6e 20 25 64 20 75 |en funct|ion %d u|
|00000e00| 6e 6b 6e 6f 77 6e 22 2c | 20 67 65 6e 6e 6f 29 3b |nknown",| genno);|
|00000e10| 0d 09 09 09 43 74 6f 50 | 73 74 72 28 28 63 68 61 |....CtoP|str((cha|
|00000e20| 72 20 2a 29 61 53 74 72 | 69 6e 67 32 29 3b 0d 09 |r *)aStr|ing2);..|
|00000e30| 09 09 50 73 74 72 69 6e | 67 43 6f 70 79 28 28 63 |..Pstrin|gCopy((c|
|00000e40| 68 61 72 20 2a 29 74 68 | 65 4d 65 73 73 31 2c 20 |har *)th|eMess1, |
|00000e50| 28 63 68 61 72 20 2a 29 | 61 53 74 72 69 6e 67 31 |(char *)|aString1|
|00000e60| 29 3b 0d 09 09 09 50 73 | 74 72 69 6e 67 43 6f 70 |);....Ps|tringCop|
|00000e70| 79 28 28 63 68 61 72 20 | 2a 29 74 68 65 4d 65 73 |y((char |*)theMes|
|00000e80| 73 32 2c 20 28 63 68 61 | 72 20 2a 29 61 53 74 72 |s2, (cha|r *)aStr|
|00000e90| 69 6e 67 32 29 3b 0d 09 | 09 09 4f 53 45 72 72 6f |ing2);..|..OSErro|
|00000ea0| 72 28 74 68 65 4d 65 73 | 73 31 2c 20 74 68 65 4d |r(theMes|s1, theM|
|00000eb0| 65 73 73 32 2c 20 4e 49 | 4c 29 3b 0d 09 7d 0d 09 |ess2, NI|L);..}..|
|00000ec0| 69 66 20 28 20 70 72 69 | 6e 74 5f 73 77 69 74 63 |if ( pri|nt_switc|
|00000ed0| 68 20 29 0d 09 09 77 72 | 69 74 65 5f 66 75 6e 63 |h )...wr|ite_func|
|00000ee0| 28 66 6e 6f 2c 20 46 5b | 66 6e 6f 5d 20 29 3b 0d |(fno, F[|fno] );.|
|00000ef0| 09 09 0d 09 09 09 0d 7d | 0d 0d 0d 0d 76 6f 69 64 |.......}|....void|
|00000f00| 09 67 65 6e 32 28 6e 70 | 61 72 67 73 2c 20 70 2c |.gen2(np|args, p,|
|00000f10| 20 66 29 0d 09 64 6f 75 | 62 6c 65 20 2a 70 2c 20 | f)..dou|ble *p, |
|00000f20| 2a 66 3b 0d 09 69 6e 74 | 20 6e 70 61 72 67 73 3b |*f;..int| npargs;|
|00000f30| 0d 7b 0d 09 72 65 67 69 | 73 74 65 72 09 6c 6f 6e |.{..regi|ster.lon|
|00000f40| 67 09 69 3b 0d 09 72 65 | 67 69 73 74 65 72 09 6c |g.i;..re|gister.l|
|00000f50| 6f 6e 67 09 6b 3b 0d 09 | 72 65 67 69 73 74 65 72 |ong.k;..|register|
|00000f60| 09 6c 6f 6e 67 09 6a 3b | 0d 09 72 65 67 69 73 74 |.long.j;|..regist|
|00000f70| 65 72 09 6c 6f 6e 67 09 | 6c 3b 0d 09 72 65 67 69 |er.long.|l;..regi|
|00000f80| 73 74 65 72 09 6c 6f 6e | 67 09 6c 76 3b 0d 09 72 |ster.lon|g.lv;..r|
|00000f90| 65 67 69 73 74 65 72 09 | 6c 6f 6e 67 09 6c 6a 3b |egister.|long.lj;|
|00000fa0| 0d 09 69 6e 74 09 69 6e | 63 72 3b 0d 09 64 6f 75 |..int.in|cr;..dou|
|00000fb0| 62 6c 65 09 7a 3b 0d 09 | 64 6f 75 62 6c 65 09 78 |ble.z;..|double.x|
|00000fc0| 69 6e 74 3b 0d 09 0d 09 | 7a 20 3d 20 70 5b 32 5d |int;....|z = p[2]|
|00000fd0| 20 2d 20 28 69 6e 74 29 | 70 5b 32 5d 3b 0d 09 70 | - (int)|p[2];..p|
|00000fe0| 5b 32 5d 20 3d 20 70 5b | 32 5d 20 2d 20 7a 3b 0d |[2] = p[|2] - z;.|
|00000ff0| 09 69 66 20 28 20 7a 20 | 3c 3d 20 30 2e 30 20 29 |.if ( z |<= 0.0 )|
|00001000| 20 7b 0d 09 09 67 65 6e | 36 28 6e 70 61 72 67 73 | {...gen|6(npargs|
|00001010| 2c 20 70 2c 20 66 29 3b | 0d 09 09 69 66 20 28 20 |, p, f);|...if ( |
|00001020| 70 5b 32 5d 20 3c 20 30 | 2e 30 20 29 20 7b 0d 09 |p[2] < 0|.0 ) {..|
|00001030| 09 09 69 6e 63 72 20 3d | 20 32 3b 0d 09 09 09 66 |..incr =| 2;....f|
|00001040| 6f 72 20 28 20 69 20 3d | 20 32 3b 20 69 20 3c 3d |or ( i =| 2; i <=|
|00001050| 20 35 31 32 3b 20 69 20 | 2b 3d 20 32 20 29 20 2a | 512; i |+= 2 ) *|
|00001060| 28 66 2b 69 29 20 3d 20 | 30 2e 30 3b 0d 09 09 09 |(f+i) = |0.0;....|
|00001070| 6b 20 3d 20 31 3b 0d 09 | 09 09 66 6f 72 20 28 20 |k = 1;..|..for ( |
|00001080| 6c 20 3d 20 32 3b 20 6c | 20 3c 3d 31 37 31 3b 20 |l = 2; l| <=171; |
|00001090| 6c 2b 2b 20 29 20 7b 0d | 09 09 09 09 6b 20 2b 3d |l++ ) {.|....k +=|
|000010a0| 20 32 3b 0d 09 09 09 09 | 69 66 20 28 20 2a 28 66 | 2;.....|if ( *(f|
|000010b0| 2b 6b 29 20 21 3d 20 30 | 2e 30 20 29 20 7b 0d 09 |+k) != 0|.0 ) {..|
|000010c0| 09 09 09 09 2a 28 66 2b | 6c 29 20 3d 20 2a 28 66 |....*(f+|l) = *(f|
|000010d0| 2b 6b 29 3b 0d 09 09 09 | 09 09 2a 28 66 2b 6b 29 |+k);....|..*(f+k)|
|000010e0| 20 3d 20 30 2e 30 3b 0d | 09 09 09 09 7d 0d 09 09 | = 0.0;.|....}...|
|000010f0| 09 09 65 6c 73 65 20 7b | 0d 09 09 09 09 09 6c 76 |..else {|......lv|
|00001100| 20 3d 20 6c 20 2d 20 31 | 3b 0d 09 09 09 09 09 67 | = l - 1|;......g|
|00001110| 6f 74 6f 20 4c 34 30 3b | 0d 09 09 09 09 7d 0d 09 |oto L40;|.....}..|
|00001120| 09 09 7d 0d 09 09 09 66 | 6f 72 20 28 20 69 20 3d |..}....f|or ( i =|
|00001130| 20 31 37 31 3b 20 69 20 | 3c 3d 20 35 31 32 3b 20 | 171; i |<= 512; |
|00001140| 69 20 2b 3d 20 69 6e 63 | 72 20 29 20 2a 28 66 2b |i += inc|r ) *(f+|
|00001150| 69 29 20 3d 20 30 2e 30 | 3b 0d 09 09 7d 0d 09 7d |i) = 0.0|;...}..}|
|00001160| 0d 09 65 6c 73 65 20 7b | 0d 09 09 2f 2a 20 63 68 |..else {|.../* ch|
|00001170| 61 6e 67 65 20 6f 72 64 | 65 72 20 6f 66 20 70 20 |ange ord|er of p |
|00001180| 61 72 67 73 20 2a 2f 0d | 09 09 66 6f 72 20 28 20 |args */.|..for ( |
|00001190| 6c 20 3d 20 6e 70 61 72 | 67 73 3b 20 6c 20 3e 20 |l = npar|gs; l > |
|000011a0| 31 3b 20 6c 2d 2d 20 29 | 0d 09 09 09 70 5b 6c 5d |1; l-- )|....p[l]|
|000011b0| 20 3d 20 70 5b 6c 2d 31 | 5d 3b 0d 09 09 67 65 6e | = p[l-1|];...gen|
|000011c0| 35 28 6e 70 61 72 67 73 | 2b 31 2c 20 70 2c 20 66 |5(npargs|+1, p, f|
|000011d0| 29 3b 0d 09 09 78 69 6e | 74 20 3d 20 31 30 30 2e |);...xin|t = 100.|
|000011e0| 30 20 2f 20 31 32 2e 30 | 20 2a 20 7a 3b 0d 09 09 |0 / 12.0| * z;...|
|000011f0| 69 6e 63 72 20 3d 20 31 | 3b 0d 09 09 66 6f 72 20 |incr = 1|;...for |
|00001200| 28 20 6c 20 3d 20 32 3b | 20 6c 20 3c 3d 31 37 31 |( l = 2;| l <=171|
|00001210| 3b 20 6c 2b 2b 20 29 20 | 7b 0d 09 09 09 69 66 20 |; l++ ) |{....if |
|00001220| 28 20 2a 28 66 2b 6c 29 | 20 3d 3d 20 30 2e 30 20 |( *(f+l)| == 0.0 |
|00001230| 29 20 7b 0d 09 09 09 09 | 6c 76 20 3d 20 6c 20 2d |) {.....|lv = l -|
|00001240| 20 31 3b 0d 09 09 09 09 | 67 6f 74 6f 20 4c 34 30 | 1;.....|goto L40|
|00001250| 3b 0d 09 09 09 7d 0d 09 | 09 7d 0d 09 09 66 6f 72 |;....}..|.}...for|
|00001260| 20 28 20 6c 20 3d 20 31 | 37 31 3b 20 69 20 3c 3d | ( l = 1|71; i <=|
|00001270| 20 35 31 32 3b 20 6c 20 | 2b 3d 20 69 6e 63 72 20 | 512; l |+= incr |
|00001280| 29 20 2a 28 66 2b 6c 29 | 20 3d 20 30 2e 30 3b 0d |) *(f+l)| = 0.0;.|
|00001290| 09 09 6c 76 20 3d 20 31 | 37 30 3b 0d 09 7d 0d 4c |..lv = 1|70;..}.L|
|000012a0| 34 30 3a 0d 09 6c 6a 20 | 3d 20 33 20 2a 20 6c 76 |40:..lj |= 3 * lv|
|000012b0| 20 2d 20 31 3b 0d 09 66 | 6f 72 20 28 20 69 20 3d | - 1;..f|or ( i =|
|000012c0| 20 32 3b 20 69 20 3c 3d | 20 6c 6a 3b 20 69 20 2b | 2; i <=| lj; i +|
|000012d0| 3d 20 33 20 29 20 7b 0d | 09 09 6a 20 3d 20 6c 6a |= 3 ) {.|..j = lj|
|000012e0| 20 2b 20 32 20 2d 20 69 | 3b 0d 09 09 2a 28 66 2b | + 2 - i|;...*(f+|
|000012f0| 6a 29 20 3d 20 2a 28 66 | 2b 6c 76 29 3b 0d 09 09 |j) = *(f|+lv);...|
|00001300| 6c 76 2d 2d 3b 0d 09 09 | 69 66 20 28 20 7a 20 3c |lv--;...|if ( z <|
|00001310| 3d 20 30 2e 30 20 29 0d | 09 09 09 2a 28 66 2b 6a |= 0.0 ).|...*(f+j|
|00001320| 2d 31 29 20 3d 20 31 20 | 2b 20 6c 76 20 2a 20 69 |-1) = 1 |+ lv * i|
|00001330| 6e 63 72 3b 0d 09 09 65 | 6c 73 65 0d 09 09 09 2a |ncr;...e|lse....*|
|00001340| 28 66 2b 6a 2d 31 29 20 | 3d 20 28 28 69 6e 74 29 |(f+j-1) |= ((int)|
|00001350| 28 20 31 32 38 2e 30 20 | 2a 20 70 6f 77 28 32 2e |( 128.0 |* pow(2.|
|00001360| 30 2c 20 28 6c 76 2a 78 | 69 6e 74 29 29 20 29 29 |0, (lv*x|int)) ))|
|00001370| 20 2f 20 31 32 38 2e 30 | 3b 0d 09 09 2a 28 66 2b | / 128.0|;...*(f+|
|00001380| 6a 2b 31 29 20 3d 20 30 | 2e 30 3b 0d 09 7d 0d 7d |j+1) = 0|.0;..}.}|
|00001390| 0d 0d 0d 76 6f 69 64 09 | 67 65 6e 35 28 6e 70 61 |...void.|gen5(npa|
|000013a0| 72 67 73 2c 20 70 2c 20 | 66 29 0d 09 64 6f 75 62 |rgs, p, |f)..doub|
|000013b0| 6c 65 20 2a 70 2c 20 2a | 66 3b 0d 09 69 6e 74 20 |le *p, *|f;..int |
|000013c0| 6e 70 61 72 67 73 3b 0d | 7b 0d 09 72 65 67 69 73 |npargs;.|{..regis|
|000013d0| 74 65 72 20 69 6e 74 20 | 69 3b 0d 09 69 6e 74 20 |ter int |i;..int |
|000013e0| 6c 65 6e 20 3d 20 2a 66 | 3b 0d 09 69 6e 74 20 6a |len = *f|;..int j|
|000013f0| 2c 20 6b 2c 20 6c 2c 20 | 6d 2c 20 6e 3b 0d 09 64 |, k, l, |m, n;..d|
|00001400| 6f 75 62 6c 65 20 78 31 | 2c 20 79 31 2c 20 78 32 |ouble x1|, y1, x2|
|00001410| 2c 20 79 32 3b 0d 09 64 | 6f 75 62 6c 65 20 63 3b |, y2;..d|ouble c;|
|00001420| 0d 0d 0d 09 79 32 20 3d | 20 2a 28 70 2b 35 29 3b |....y2 =| *(p+5);|
|00001430| 0d 09 69 20 3d 20 31 3b | 0d 0d 09 6e 20 3d 20 36 |..i = 1;|...n = 6|
|00001440| 3b 0d 09 77 68 69 6c 65 | 20 28 6e 20 3c 20 6e 70 |;..while| (n < np|
|00001450| 61 72 67 73 29 20 7b 0d | 09 09 69 66 20 28 20 2a |args) {.|..if ( *|
|00001460| 28 70 2b 6e 2b 31 29 20 | 3c 3d 20 30 2e 30 20 29 |(p+n+1) |<= 0.0 )|
|00001470| 0d 09 09 09 62 72 65 61 | 6b 3b 0d 09 09 79 31 20 |....brea|k;...y1 |
|00001480| 3d 20 79 32 3b 0d 09 09 | 79 32 20 3d 20 2a 28 70 |= y2;...|y2 = *(p|
|00001490| 2b 6e 2b 31 29 3b 0d 09 | 09 6a 20 3d 20 69 3b 0d |+n+1);..|.j = i;.|
|000014a0| 09 09 69 66 20 28 20 6a | 20 3e 20 6c 65 6e 20 29 |..if ( j| > len )|
|000014b0| 0d 09 09 09 62 72 65 61 | 6b 3b 0d 09 09 2a 28 66 |....brea|k;...*(f|
|000014c0| 2b 6a 29 20 3d 20 79 31 | 3b 0d 09 09 6d 20 3d 20 |+j) = y1|;...m = |
|000014d0| 6a 20 2b 20 31 3b 0d 09 | 09 69 20 3d 20 2a 28 70 |j + 1;..|.i = *(p|
|000014e0| 2b 6e 29 3b 0d 09 09 6a | 20 3d 20 69 20 2d 20 6a |+n);...j| = i - j|
|000014f0| 3b 0d 09 09 69 66 20 28 | 20 6d 20 3c 3d 20 69 20 |;...if (| m <= i |
|00001500| 29 20 7b 0d 09 09 09 63 | 20 3d 20 70 6f 77 28 20 |) {....c| = pow( |
|00001510| 28 79 32 2f 79 31 29 2c | 20 28 31 2e 30 2f 6a 29 |(y2/y1),| (1.0/j)|
|00001520| 29 3b 0d 2f 2a 09 09 09 | 63 20 3d 20 70 6f 77 28 |);./*...|c = pow(|
|00001530| 20 28 79 32 2f 79 31 29 | 2c 20 28 31 2e 30 2f 28 | (y2/y1)|, (1.0/(|
|00001540| 2a 28 70 2b 6e 29 29 29 | 29 3b 2a 2f 0d 09 09 09 |*(p+n)))|);*/....|
|00001550| 66 6f 72 20 28 20 6c 20 | 3d 20 6d 3b 20 6c 20 3c |for ( l |= m; l <|
|00001560| 20 69 3b 20 6c 2b 2b 20 | 29 0d 09 09 09 09 2a 28 | i; l++ |).....*(|
|00001570| 66 2b 6c 29 20 3d 20 2a | 28 66 2b 6c 2d 31 29 20 |f+l) = *|(f+l-1) |
|00001580| 2a 20 63 3b 0d 09 09 7d | 0d 09 09 6e 20 2b 3d 20 |* c;...}|...n += |
|00001590| 32 3b 0d 09 7d 0d 09 2a | 28 66 2b 69 29 20 3d 20 |2;..}..*|(f+i) = |
|000015a0| 79 32 3b 0d 09 66 6e 73 | 63 6c 28 66 2c 20 6c 65 |y2;..fns|cl(f, le|
|000015b0| 6e 29 3b 0d 7d 0d 0d 0d | 0d 76 6f 69 64 09 67 65 |n);.}...|.void.ge|
|000015c0| 6e 36 28 6e 70 61 72 67 | 73 2c 20 70 2c 20 66 29 |n6(nparg|s, p, f)|
|000015d0| 0d 09 64 6f 75 62 6c 65 | 20 2a 70 2c 20 2a 66 3b |..double| *p, *f;|
|000015e0| 0d 09 69 6e 74 20 6e 70 | 61 72 67 73 3b 0d 7b 0d |..int np|args;.{.|
|000015f0| 09 72 65 67 69 73 74 65 | 72 09 6c 6f 6e 67 09 69 |.registe|r.long.i|
|00001600| 3b 0d 09 72 65 67 69 73 | 74 65 72 09 6c 6f 6e 67 |;..regis|ter.long|
|00001610| 09 6b 3b 0d 09 72 65 67 | 69 73 74 65 72 09 6c 6f |.k;..reg|ister.lo|
|00001620| 6e 67 09 6c 3b 0d 09 72 | 65 67 69 73 74 65 72 09 |ng.l;..r|egister.|
|00001630| 6c 6f 6e 67 09 6a 3b 0d | 09 69 6e 74 09 6c 65 6e |long.j;.|.int.len|
|00001640| 3b 0d 09 64 6f 75 62 6c | 65 09 78 6a 3b 0d 09 64 |;..doubl|e.xj;..d|
|00001650| 6f 75 62 6c 65 09 76 72 | 61 74 69 6f 3b 0d 09 64 |ouble.vr|atio;..d|
|00001660| 6f 75 62 6c 65 09 61 6d | 70 31 3b 0d 09 64 6f 75 |ouble.am|p1;..dou|
|00001670| 62 6c 65 09 61 6d 70 32 | 3b 0d 09 64 6f 75 62 6c |ble.amp2|;..doubl|
|00001680| 65 09 62 61 73 65 3b 0d | 09 6c 65 6e 20 3d 20 28 |e.base;.|.len = (|
|00001690| 69 6e 74 29 2a 66 3b 0d | 09 0d 09 66 6f 72 20 28 |int)*f;.|...for (|
|000016a0| 20 69 20 3d 20 31 3b 20 | 69 20 3c 20 6c 65 6e 2b | i = 1; |i < len+|
|000016b0| 31 3b 20 69 2b 2b 20 29 | 20 2a 28 66 2b 69 29 20 |1; i++ )| *(f+i) |
|000016c0| 3d 20 30 2e 30 3b 0d 09 | 0d 09 69 20 3d 20 30 3b |= 0.0;..|..i = 0;|
|000016d0| 0d 09 61 6d 70 32 20 3d | 20 70 5b 34 5d 3b 0d 09 |..amp2 =| p[4];..|
|000016e0| 66 6f 72 20 28 20 6b 20 | 3d 20 35 3b 20 6b 20 3c |for ( k |= 5; k <|
|000016f0| 20 6e 70 61 72 67 73 3b | 20 6b 20 2b 3d 20 32 20 | npargs;| k += 2 |
|00001700| 29 20 7b 0d 09 09 69 66 | 20 28 20 70 5b 6b 5d 20 |) {...if| ( p[k] |
|00001710| 3e 20 30 2e 30 20 29 20 | 7b 0d 09 09 09 61 6d 70 |> 0.0 ) |{....amp|
|00001720| 31 20 3d 20 61 6d 70 32 | 3b 0d 09 09 09 61 6d 70 |1 = amp2|;....amp|
|00001730| 32 20 3d 20 70 5b 6b 2b | 31 5d 3b 0d 09 09 09 6a |2 = p[k+|1];....j|
|00001740| 20 3d 20 69 20 2b 20 31 | 3b 0d 09 09 09 69 20 3d | = i + 1|;....i =|
|00001750| 20 6a 20 2b 20 70 5b 6b | 5d 20 2d 20 31 3b 0d 09 | j + p[k|] - 1;..|
|00001760| 09 09 78 6a 20 3d 20 6a | 3b 0d 09 09 09 76 72 61 |..xj = j|;....vra|
|00001770| 74 69 6f 20 3d 20 61 6d | 70 32 20 2f 20 61 6d 70 |tio = am|p2 / amp|
|00001780| 31 3b 0d 09 09 09 62 61 | 73 65 20 3d 20 6c 6f 67 |1;....ba|se = log|
|00001790| 28 20 28 69 2b 31 29 20 | 2f 20 78 6a 20 29 3b 0d |( (i+1) |/ xj );.|
|000017a0| 09 09 09 66 6f 72 20 28 | 20 6c 20 3d 20 6a 3b 20 |...for (| l = j; |
|000017b0| 6c 20 3c 3d 20 69 3b 20 | 6c 2b 2b 20 29 20 7b 0d |l <= i; |l++ ) {.|
|000017c0| 09 09 09 09 69 66 20 28 | 20 6c 20 3c 3d 20 6c 65 |....if (| l <= le|
|000017d0| 6e 20 29 0d 09 09 09 09 | 09 2a 28 66 2b 6c 29 20 |n ).....|.*(f+l) |
|000017e0| 3d 20 61 6d 70 31 20 2a | 20 70 6f 77 28 76 72 61 |= amp1 *| pow(vra|
|000017f0| 74 69 6f 2c 20 28 6c 6f | 67 28 6c 2f 78 6a 29 20 |tio, (lo|g(l/xj) |
|00001800| 2f 20 62 61 73 65 29 29 | 3b 0d 09 09 09 09 65 6c |/ base))|;.....el|
|00001810| 73 65 0d 09 09 09 09 09 | 62 72 65 61 6b 3b 0d 09 |se......|break;..|
|00001820| 09 09 7d 0d 09 09 7d 0d | 09 09 65 6c 73 65 0d 09 |..}...}.|..else..|
|00001830| 09 09 62 72 65 61 6b 3b | 0d 09 7d 0d 09 66 6e 73 |..break;|..}..fns|
|00001840| 63 6c 28 66 2c 20 6c 65 | 6e 29 3b 0d 7d 0d 09 0d |cl(f, le|n);.}...|
|00001850| 09 0d 76 6f 69 64 09 67 | 65 6e 37 28 6e 70 61 72 |..void.g|en7(npar|
|00001860| 67 73 2c 20 70 2c 20 66 | 29 0d 09 64 6f 75 62 6c |gs, p, f|)..doubl|
|00001870| 65 20 2a 70 2c 20 2a 66 | 3b 0d 09 69 6e 74 20 6e |e *p, *f|;..int n|
|00001880| 70 61 72 67 73 3b 0d 7b | 0d 2f 2a 20 73 74 72 61 |pargs;.{|./* stra|
|00001890| 69 67 68 74 20 6c 69 6e | 65 20 73 65 67 6d 65 6e |ight lin|e segmen|
|000018a0| 74 73 20 2a 2f 0d 2f 2a | 09 70 34 20 3d 20 31 73 |ts */./*|.p4 = 1s|
|000018b0| 74 20 78 20 76 61 6c 75 | 65 0d 09 70 35 20 3d 20 |t x valu|e..p5 = |
|000018c0| 31 73 74 20 79 20 76 61 | 6c 75 65 0d 09 70 36 20 |1st y va|lue..p6 |
|000018d0| 3d 20 32 6e 64 20 78 20 | 76 61 6c 75 65 0d 09 70 |= 2nd x |value..p|
|000018e0| 37 20 3d 20 32 6e 64 20 | 79 20 76 61 6c 75 65 0d |7 = 2nd |y value.|
|000018f0| 09 65 74 63 2e 0d 2a 2f | 0d 09 72 65 67 69 73 74 |.etc..*/|..regist|
|00001900| 65 72 20 69 6e 74 09 20 | 69 3b 0d 09 72 65 67 69 |er int. |i;..regi|
|00001910| 73 74 65 72 20 69 6e 74 | 09 20 6e 3b 0d 09 69 6e |ster int|. n;..in|
|00001920| 74 20 6c 65 6e 20 3d 20 | 2a 66 3b 0d 09 69 6e 74 |t len = |*f;..int|
|00001930| 20 6a 2c 20 6b 3b 0d 09 | 64 6f 75 62 6c 65 20 78 | j, k;..|double x|
|00001940| 31 2c 20 79 31 2c 20 78 | 32 2c 20 79 32 3b 0d 09 |1, y1, x|2, y2;..|
|00001950| 64 6f 75 62 6c 65 20 78 | 5f 64 69 66 66 2c 20 79 |double x|_diff, y|
|00001960| 5f 64 69 66 66 3b 0d 0d | 0d 09 79 32 20 3d 20 2a |_diff;..|..y2 = *|
|00001970| 28 70 2b 35 29 3b 0d 09 | 78 32 20 3d 20 2a 28 70 |(p+5);..|x2 = *(p|
|00001980| 2b 34 29 3b 0d 0d 09 6e | 20 3d 20 36 3b 0d 09 77 |+4);...n| = 6;..w|
|00001990| 68 69 6c 65 20 28 6e 20 | 3c 20 6e 70 61 72 67 73 |hile (n |< npargs|
|000019a0| 29 20 7b 0d 09 09 78 31 | 20 3d 20 78 32 3b 0d 09 |) {...x1| = x2;..|
|000019b0| 09 78 32 20 3d 20 2a 28 | 70 2b 6e 29 3b 0d 09 09 |.x2 = *(|p+n);...|
|000019c0| 79 31 20 3d 20 79 32 3b | 0d 09 09 79 32 20 3d 20 |y1 = y2;|...y2 = |
|000019d0| 2a 28 70 2b 6e 2b 31 29 | 3b 0d 09 09 79 5f 64 69 |*(p+n+1)|;...y_di|
|000019e0| 66 66 20 3d 20 79 32 20 | 2d 20 79 31 3b 0d 09 09 |ff = y2 |- y1;...|
|000019f0| 78 5f 64 69 66 66 20 3d | 20 78 32 20 2d 20 78 31 |x_diff =| x2 - x1|
|00001a00| 3b 0d 09 09 6a 20 3d 20 | 28 69 6e 74 29 78 31 3b |;...j = |(int)x1;|
|00001a10| 0d 09 09 69 66 20 28 20 | 6a 20 3c 20 31 20 29 0d |...if ( |j < 1 ).|
|00001a20| 09 09 09 6a 20 3d 20 31 | 3b 0d 09 09 6b 20 3d 20 |...j = 1|;...k = |
|00001a30| 28 69 6e 74 29 78 32 3b | 0d 09 09 66 6f 72 20 28 |(int)x2;|...for (|
|00001a40| 20 69 20 3d 20 6a 3b 20 | 69 3c 3d 6b 3b 20 69 2b | i = j; |i<=k; i+|
|00001a50| 2b 29 0d 09 09 09 2a 28 | 66 2b 69 29 20 3d 20 79 |+)....*(|f+i) = y|
|00001a60| 31 20 2b 20 28 79 5f 64 | 69 66 66 20 2a 28 28 69 |1 + (y_d|iff *((i|
|00001a70| 20 2d 20 78 31 29 2f 78 | 5f 64 69 66 66 29 29 3b | - x1)/x|_diff));|
|00001a80| 0d 09 09 6e 20 2b 3d 20 | 32 3b 0d 09 7d 0d 09 2a |...n += |2;..}..*|
|00001a90| 28 66 2b 28 69 6e 74 29 | 78 32 29 20 3d 20 79 32 |(f+(int)|x2) = y2|
|00001aa0| 3b 0d 09 69 66 20 28 20 | 73 63 61 6c 65 5f 66 6c |;..if ( |scale_fl|
|00001ab0| 61 67 20 29 0d 09 09 66 | 6e 73 63 6c 28 66 2c 20 |ag )...f|nscl(f, |
|00001ac0| 6c 65 6e 29 3b 0d 7d 0d | 0d 0d 76 6f 69 64 09 67 |len);.}.|..void.g|
|00001ad0| 65 6e 39 28 6e 70 61 72 | 67 73 2c 20 70 2c 20 66 |en9(npar|gs, p, f|
|00001ae0| 29 0d 09 64 6f 75 62 6c | 65 20 2a 70 2c 20 2a 66 |)..doubl|e *p, *f|
|00001af0| 3b 0d 09 69 6e 74 20 6e | 70 61 72 67 73 3b 0d 7b |;..int n|pargs;.{|
|00001b00| 0d 2f 2a 0d 2a 28 70 2b | 34 29 20 3d 20 70 61 72 |./*.*(p+|4) = par|
|00001b10| 74 69 61 6c 20 6e 6f 2c | 20 2a 28 70 2b 35 29 20 |tial no,| *(p+5) |
|00001b20| 3d 20 61 6d 70 6c 69 74 | 75 64 65 2c 20 2a 28 70 |= amplit|ude, *(p|
|00001b30| 2b 36 29 20 3d 20 70 68 | 61 73 65 20 69 6e 20 64 |+6) = ph|ase in d|
|00001b40| 65 67 72 65 65 73 0d 2a | 2f 0d 09 72 65 67 69 73 |egrees.*|/..regis|
|00001b50| 74 65 72 20 69 6e 74 09 | 20 69 3b 0d 09 72 65 67 |ter int.| i;..reg|
|00001b60| 69 73 74 65 72 20 69 6e | 74 09 20 6e 3b 0d 09 69 |ister in|t. n;..i|
|00001b70| 6e 74 20 6c 65 6e 20 3d | 20 2a 66 3b 0d 09 64 6f |nt len =| *f;..do|
|00001b80| 75 62 6c 65 20 61 72 67 | 3b 0d 09 64 6f 75 62 6c |uble arg|;..doubl|
|00001b90| 65 20 72 61 64 73 3b 0d | 09 64 6f 75 62 6c 65 20 |e rads;.|.double |
|00001ba0| 68 6e 6f 3b 0d 09 64 6f | 75 62 6c 65 20 61 6d 70 |hno;..do|uble amp|
|00001bb0| 3b 0d 09 64 6f 75 62 6c | 65 20 70 68 73 3b 0d 0d |;..doubl|e phs;..|
|00001bc0| 0d 09 72 61 64 73 20 3d | 20 54 57 4f 50 49 2f 6c |..rads =| TWOPI/l|
|00001bd0| 65 6e 3b 0d 09 66 6f 72 | 20 28 20 6e 20 3d 20 34 |en;..for| ( n = 4|
|00001be0| 3b 20 6e 20 3c 20 6e 70 | 61 72 67 73 3b 20 6e 20 |; n < np|args; n |
|00001bf0| 2b 3d 20 33 20 29 20 7b | 0d 09 09 68 6e 6f 20 3d |+= 3 ) {|...hno =|
|00001c00| 20 2a 28 70 2b 6e 29 3b | 0d 09 09 61 6d 70 20 3d | *(p+n);|...amp =|
|00001c10| 20 2a 28 70 2b 6e 2b 31 | 29 3b 0d 09 09 70 68 73 | *(p+n+1|);...phs|
|00001c20| 20 3d 20 28 2a 28 70 2b | 6e 2b 32 29 20 2a 20 6c | = (*(p+|n+2) * l|
|00001c30| 65 6e 29 20 2f 20 33 36 | 30 2e 30 3b 20 0d 0d 09 |en) / 36|0.0; ...|
|00001c40| 09 69 66 20 28 20 68 6e | 6f 20 3d 3d 20 30 2e 30 |.if ( hn|o == 0.0|
|00001c50| 20 29 0d 09 09 09 62 72 | 65 61 6b 3b 0d 0d 09 09 | )....br|eak;....|
|00001c60| 66 6f 72 20 28 20 69 20 | 3d 20 31 3b 20 69 20 3c |for ( i |= 1; i <|
|00001c70| 20 6c 65 6e 2b 31 3b 20 | 69 2b 2b 20 29 20 7b 0d | len+1; |i++ ) {.|
|00001c80| 09 09 09 2a 28 66 2b 69 | 29 20 2b 3d 20 28 61 6d |...*(f+i|) += (am|
|00001c90| 70 20 2a 20 73 69 6e 28 | 72 61 64 73 20 2a 20 28 |p * sin(|rads * (|
|00001ca0| 28 69 2d 31 29 20 2a 20 | 68 6e 6f 20 2b 20 70 68 |(i-1) * |hno + ph|
|00001cb0| 73 29 29 29 3b 0d 09 09 | 7d 0d 09 7d 0d 09 66 6e |s)));...|}..}..fn|
|00001cc0| 73 63 6c 28 66 2c 20 6c | 65 6e 29 3b 0d 7d 0d 0d |scl(f, l|en);.}..|
|00001cd0| 0d 76 6f 69 64 09 67 65 | 6e 31 30 28 6e 70 61 72 |.void.ge|n10(npar|
|00001ce0| 67 73 2c 20 70 2c 20 66 | 29 0d 09 64 6f 75 62 6c |gs, p, f|)..doubl|
|00001cf0| 65 20 2a 70 2c 20 2a 66 | 3b 0d 09 69 6e 74 20 6e |e *p, *f|;..int n|
|00001d00| 70 61 72 67 73 3b 0d 7b | 0d 2f 2a 0d 2a 28 70 2b |pargs;.{|./*.*(p+|
|00001d10| 34 29 20 3d 20 61 6d 70 | 20 6f 66 20 68 61 72 6d |4) = amp| of harm|
|00001d20| 6f 6e 69 63 20 6e 6f 20 | 31 2c 0d 2a 28 70 2b 35 |onic no |1,.*(p+5|
|00001d30| 29 20 3d 20 61 6d 70 20 | 6f 66 20 68 61 72 6d 6f |) = amp |of harmo|
|00001d40| 6e 69 63 20 6e 6f 20 32 | 2c 0d 2a 28 70 2b 36 29 |nic no 2|,.*(p+6)|
|00001d50| 20 3d 20 61 6d 70 20 6f | 66 20 68 61 72 6d 6f 6e | = amp o|f harmon|
|00001d60| 69 63 20 6e 6f 20 33 2c | 20 65 74 63 2e 0d 2a 2f |ic no 3,| etc..*/|
|00001d70| 0d 09 72 65 67 69 73 74 | 65 72 20 69 6e 74 09 20 |..regist|er int. |
|00001d80| 69 3b 0d 09 72 65 67 69 | 73 74 65 72 20 69 6e 74 |i;..regi|ster int|
|00001d90| 09 20 6e 3b 0d 09 69 6e | 74 20 6c 65 6e 20 3d 20 |. n;..in|t len = |
|00001da0| 2a 66 3b 0d 09 64 6f 75 | 62 6c 65 20 61 72 67 3b |*f;..dou|ble arg;|
|00001db0| 0d 09 64 6f 75 62 6c 65 | 20 72 61 64 73 3b 0d 09 |..double| rads;..|
|00001dc0| 64 6f 75 62 6c 65 20 68 | 6e 6f 3b 0d 09 64 6f 75 |double h|no;..dou|
|00001dd0| 62 6c 65 20 61 6d 70 3b | 0d 0d 0d 09 72 61 64 73 |ble amp;|....rads|
|00001de0| 20 3d 20 54 57 4f 50 49 | 2f 6c 65 6e 3b 0d 09 66 | = TWOPI|/len;..f|
|00001df0| 6f 72 20 28 20 6e 20 3d | 20 34 3b 20 6e 20 3c 20 |or ( n =| 4; n < |
|00001e00| 6e 70 61 72 67 73 3b 20 | 6e 20 2b 3d 20 33 20 29 |npargs; |n += 3 )|
|00001e10| 20 7b 0d 09 09 68 6e 6f | 20 3d 20 6e 2d 33 3b 0d | {...hno| = n-3;.|
|00001e20| 09 09 61 6d 70 20 3d 20 | 2a 28 70 2b 6e 2b 31 29 |..amp = |*(p+n+1)|
|00001e30| 3b 0d 09 09 69 66 20 28 | 20 68 6e 6f 20 3d 3d 20 |;...if (| hno == |
|00001e40| 30 2e 30 20 29 0d 09 09 | 09 62 72 65 61 6b 3b 0d |0.0 )...|.break;.|
|00001e50| 09 09 66 6f 72 20 28 20 | 69 20 3d 20 31 3b 20 69 |..for ( |i = 1; i|
|00001e60| 20 3c 20 6c 65 6e 2b 31 | 3b 20 69 2b 2b 20 29 0d | < len+1|; i++ ).|
|00001e70| 09 09 09 2a 28 66 2b 69 | 29 20 2b 3d 20 28 61 6d |...*(f+i|) += (am|
|00001e80| 70 20 2a 20 73 69 6e 28 | 72 61 64 73 20 2a 20 28 |p * sin(|rads * (|
|00001e90| 28 69 2d 31 29 20 2a 20 | 68 6e 6f 29 29 29 3b 0d |(i-1) * |hno)));.|
|00001ea0| 09 7d 0d 09 66 6e 73 63 | 6c 28 66 2c 20 6c 65 6e |.}..fnsc|l(f, len|
|00001eb0| 29 3b 0d 7d 0d 0d 76 6f | 69 64 09 67 65 6e 31 31 |);.}..vo|id.gen11|
|00001ec0| 28 6e 70 61 72 67 73 2c | 20 70 2c 20 66 29 0d 09 |(npargs,| p, f)..|
|00001ed0| 64 6f 75 62 6c 65 20 2a | 70 2c 20 2a 66 3b 0d 09 |double *|p, *f;..|
|00001ee0| 69 6e 74 20 6e 70 61 72 | 67 73 3b 0d 7b 0d 2f 2a |int npar|gs;.{./*|
|00001ef0| 20 6a 75 73 74 20 63 6f | 70 69 65 73 20 61 72 67 | just co|pies arg|
|00001f00| 75 6d 65 6e 74 73 20 69 | 6e 74 6f 20 46 20 2a 2f |uments i|nto F */|
|00001f10| 0d 09 72 65 67 69 73 74 | 65 72 20 69 6e 74 09 20 |..regist|er int. |
|00001f20| 69 3b 0d 09 72 65 67 69 | 73 74 65 72 20 69 6e 74 |i;..regi|ster int|
|00001f30| 09 20 6e 3b 0d 09 69 6e | 74 20 6c 65 6e 20 3d 20 |. n;..in|t len = |
|00001f40| 2a 66 3b 0d 0d 0d 09 6e | 20 3d 20 34 3b 0d 09 66 |*f;....n| = 4;..f|
|00001f50| 6f 72 20 28 20 69 20 3d | 20 31 3b 20 69 20 3c 20 |or ( i =| 1; i < |
|00001f60| 6c 65 6e 2b 31 3b 20 69 | 2b 2b 20 29 20 7b 0d 09 |len+1; i|++ ) {..|
|00001f70| 09 2a 28 66 2b 69 29 20 | 3d 20 2a 28 70 2b 6e 29 |.*(f+i) |= *(p+n)|
|00001f80| 3b 0d 09 09 6e 2b 2b 3b | 0d 09 7d 0d 09 69 66 20 |;...n++;|..}..if |
|00001f90| 28 20 73 63 61 6c 65 5f | 66 6c 61 67 20 29 0d 09 |( scale_|flag )..|
|00001fa0| 09 66 6e 73 63 6c 28 66 | 2c 20 6c 65 6e 29 3b 0d |.fnscl(f|, len);.|
|00001fb0| 7d 0d 0d 76 6f 69 64 09 | 67 65 6e 31 32 28 6e 70 |}..void.|gen12(np|
|00001fc0| 61 72 67 73 2c 20 70 2c | 20 66 29 0d 09 64 6f 75 |args, p,| f)..dou|
|00001fd0| 62 6c 65 20 2a 70 2c 20 | 2a 66 3b 0d 09 69 6e 74 |ble *p, |*f;..int|
|00001fe0| 20 6e 70 61 72 67 73 3b | 0d 7b 0d 2f 2a 20 63 6f | npargs;|.{./* co|
|00001ff0| 6d 62 69 6e 65 73 20 74 | 77 6f 20 66 75 6e 63 74 |mbines t|wo funct|
|00002000| 69 6f 6e 73 20 2a 2f 0d | 2f 2a 09 2a 28 70 2b 34 |ions */.|/*.*(p+4|
|00002010| 29 20 3d 20 66 69 72 73 | 74 20 66 75 6e 63 74 69 |) = firs|t functi|
|00002020| 6f 6e 20 6e 6f 0d 09 2a | 28 70 2b 35 29 20 3d 20 |on no..*|(p+5) = |
|00002030| 73 74 61 72 74 20 6c 6f | 63 61 74 69 6f 6e 20 69 |start lo|cation i|
|00002040| 6e 20 66 69 72 73 74 20 | 66 75 6e 63 74 69 6f 6e |n first |function|
|00002050| 0d 09 2a 28 70 2b 36 29 | 20 3d 20 65 6e 64 20 6c |..*(p+6)| = end l|
|00002060| 6f 63 61 74 69 6f 6e 20 | 69 6e 20 66 69 72 73 74 |ocation |in first|
|00002070| 20 66 75 6e 63 74 69 6f | 6e 0d 09 2a 28 70 2b 37 | functio|n..*(p+7|
|00002080| 29 20 3d 20 73 65 63 6f | 6e 64 20 66 75 6e 63 74 |) = seco|nd funct|
|00002090| 69 6f 6e 20 6e 6f 2e 0d | 09 09 09 69 66 20 70 6f |ion no..|...if po|
|000020a0| 73 69 74 69 76 65 20 77 | 69 74 68 20 6e 6f 20 66 |sitive w|ith no f|
|000020b0| 72 61 63 74 69 6f 6e 61 | 6c 20 70 61 72 74 20 3d |ractiona|l part =|
|000020c0| 20 61 64 64 20 74 68 65 | 20 74 77 6f 20 66 75 6e | add the| two fun|
|000020d0| 63 74 69 6f 6e 73 2e 0d | 09 09 09 69 66 20 6e 65 |ctions..|...if ne|
|000020e0| 67 61 74 69 76 65 20 77 | 69 74 68 20 6e 6f 20 66 |gative w|ith no f|
|000020f0| 72 61 63 74 69 6f 6e 61 | 6c 20 70 61 72 74 20 3d |ractiona|l part =|
|00002100| 20 73 75 62 74 72 61 63 | 74 20 74 68 69 73 20 66 | subtrac|t this f|
|00002110| 75 6e 63 74 69 6f 6e 0d | 09 09 09 09 66 72 6f 6d |unction.|....from|
|00002120| 20 74 68 65 20 66 69 72 | 73 74 20 66 75 6e 63 74 | the fir|st funct|
|00002130| 69 6f 6e 2e 0d 09 09 09 | 69 66 20 70 6f 73 69 74 |ion.....|if posit|
|00002140| 69 76 65 20 77 69 74 68 | 20 66 72 61 63 74 69 6f |ive with| fractio|
|00002150| 6e 61 6c 20 70 61 72 74 | 20 3d 20 6d 75 6c 74 69 |nal part| = multi|
|00002160| 70 6c 79 20 74 68 65 20 | 74 77 6f 20 66 75 6e 63 |ply the |two func|
|00002170| 74 69 6f 6e 73 2e 0d 09 | 09 09 69 66 20 6e 65 67 |tions...|..if neg|
|00002180| 61 74 69 76 65 20 77 69 | 74 68 20 66 72 61 63 74 |ative wi|th fract|
|00002190| 69 6f 6e 61 6c 20 70 61 | 72 74 20 3d 20 64 69 76 |ional pa|rt = div|
|000021a0| 69 64 65 20 74 68 65 20 | 66 69 72 73 74 20 66 75 |ide the |first fu|
|000021b0| 6e 63 74 69 6f 6e 0d 09 | 09 09 09 62 79 20 74 68 |nction..|...by th|
|000021c0| 65 20 73 65 63 6f 6e 64 | 20 66 75 6e 63 74 69 6f |e second| functio|
|000021d0| 6e 2e 0d 09 2a 28 70 2b | 38 29 20 3d 20 73 74 61 |n...*(p+|8) = sta|
|000021e0| 72 74 20 6c 6f 63 61 74 | 69 6f 6e 20 69 6e 20 73 |rt locat|ion in s|
|000021f0| 65 63 6f 6e 64 20 66 75 | 6e 63 74 69 6f 6e 0d 09 |econd fu|nction..|
|00002200| 2a 28 70 2b 39 29 20 3d | 20 65 6e 64 20 6c 6f 63 |*(p+9) =| end loc|
|00002210| 61 74 69 6f 6e 20 69 6e | 20 73 65 63 6f 6e 64 20 |ation in| second |
|00002220| 66 75 6e 63 74 69 6f 6e | 0d 2a 2f 0d 09 72 65 67 |function|.*/..reg|
|00002230| 69 73 74 65 72 20 69 6e | 74 09 20 69 3b 0d 0d 09 |ister in|t. i;...|
|00002240| 69 6e 74 20 6c 65 6e 20 | 3d 20 2a 66 3b 0d 09 69 |int len |= *f;..i|
|00002250| 6e 74 09 66 6e 6f 31 2c | 20 66 6e 6f 32 3b 0d 09 |nt.fno1,| fno2;..|
|00002260| 69 6e 74 09 6c 65 6e 31 | 2c 20 6c 65 6e 32 3b 0d |int.len1|, len2;.|
|00002270| 09 69 6e 74 09 73 74 61 | 72 74 31 2c 20 65 6e 64 |.int.sta|rt1, end|
|00002280| 31 2c 20 73 74 61 72 74 | 32 2c 20 65 6e 64 32 3b |1, start|2, end2;|
|00002290| 0d 09 69 6e 74 09 74 68 | 65 4f 70 3b 0d 09 2f 2a |..int.th|eOp;../*|
|000022a0| 20 67 65 74 20 66 75 6e | 63 74 69 6f 6e 20 6e 75 | get fun|ction nu|
|000022b0| 6d 62 65 72 73 20 2a 2f | 0d 09 66 6e 6f 31 20 3d |mbers */|..fno1 =|
|000022c0| 20 41 42 53 28 2a 28 70 | 2b 34 29 29 3b 0d 09 66 | ABS(*(p|+4));..f|
|000022d0| 6e 6f 32 20 3d 20 41 42 | 53 28 2a 28 70 2b 37 29 |no2 = AB|S(*(p+7)|
|000022e0| 29 3b 0d 09 2f 2a 20 63 | 68 65 63 6b 20 74 68 65 |);../* c|heck the|
|000022f0| 79 20 61 72 65 20 62 6f | 74 68 20 64 65 66 69 6e |y are bo|th defin|
|00002300| 65 64 20 2a 2f 0d 09 69 | 66 20 28 20 21 64 65 66 |ed */..i|f ( !def|
|00002310| 69 6e 65 64 5f 66 75 6e | 63 73 5b 66 6e 6f 31 5d |ined_fun|cs[fno1]|
|00002320| 29 20 7b 0d 09 09 73 70 | 72 69 6e 74 66 28 61 53 |) {...sp|rintf(aS|
|00002330| 74 72 69 6e 67 31 2c 20 | 22 41 74 74 65 6d 70 74 |tring1, |"Attempt|
|00002340| 20 74 6f 20 61 63 63 65 | 73 73 20 75 6e 64 65 66 | to acce|ss undef|
|00002350| 69 6e 65 64 20 66 75 6e | 63 74 69 6f 6e 20 25 64 |ined fun|ction %d|
|00002360| 20 69 6e 20 67 65 6e 31 | 32 22 2c 20 66 6e 6f 31 | in gen1|2", fno1|
|00002370| 29 3b 0d 09 09 43 74 6f | 50 73 74 72 28 61 53 74 |);...Cto|Pstr(aSt|
|00002380| 72 69 6e 67 31 29 3b 0d | 09 09 73 70 72 69 6e 74 |ring1);.|..sprint|
|00002390| 66 28 61 53 74 72 69 6e | 67 32 2c 20 22 66 75 6e |f(aStrin|g2, "fun|
|000023a0| 63 74 69 6f 6e 20 6e 6f | 2e 20 25 64 22 2c 20 28 |ction no|. %d", (|
|000023b0| 69 6e 74 29 20 2a 70 29 | 3b 0d 09 09 43 74 6f 50 |int) *p)|;...CtoP|
|000023c0| 73 74 72 28 61 53 74 72 | 69 6e 67 32 29 3b 0d 09 |str(aStr|ing2);..|
|000023d0| 09 50 73 74 72 69 6e 67 | 43 6f 70 79 28 28 63 68 |.Pstring|Copy((ch|
|000023e0| 61 72 20 2a 29 74 68 65 | 4d 65 73 73 31 2c 20 28 |ar *)the|Mess1, (|
|000023f0| 63 68 61 72 20 2a 29 61 | 53 74 72 69 6e 67 31 29 |char *)a|String1)|
|00002400| 3b 0d 09 09 50 73 74 72 | 69 6e 67 43 6f 70 79 28 |;...Pstr|ingCopy(|
|00002410| 28 63 68 61 72 20 2a 29 | 74 68 65 4d 65 73 73 32 |(char *)|theMess2|
|00002420| 2c 20 28 63 68 61 72 20 | 2a 29 61 53 74 72 69 6e |, (char |*)aStrin|
|00002430| 67 32 29 3b 0d 09 09 4f | 53 45 72 72 6f 72 28 74 |g2);...O|SError(t|
|00002440| 68 65 4d 65 73 73 31 2c | 20 74 68 65 4d 65 73 73 |heMess1,| theMess|
|00002450| 32 2c 20 4e 49 4c 29 3b | 0d 09 7d 0d 09 69 66 20 |2, NIL);|..}..if |
|00002460| 28 20 21 64 65 66 69 6e | 65 64 5f 66 75 6e 63 73 |( !defin|ed_funcs|
|00002470| 5b 66 6e 6f 32 5d 29 20 | 7b 0d 09 09 73 70 72 69 |[fno2]) |{...spri|
|00002480| 6e 74 66 28 61 53 74 72 | 69 6e 67 31 2c 20 22 41 |ntf(aStr|ing1, "A|
|00002490| 74 74 65 6d 70 74 20 74 | 6f 20 61 63 63 65 73 73 |ttempt t|o access|
|000024a0| 20 75 6e 64 65 66 69 6e | 65 64 20 66 75 6e 63 74 | undefin|ed funct|
|000024b0| 69 6f 6e 20 25 64 20 69 | 6e 20 67 65 6e 31 32 22 |ion %d i|n gen12"|
|000024c0| 2c 20 66 6e 6f 32 29 3b | 0d 09 09 43 74 6f 50 73 |, fno2);|...CtoPs|
|000024d0| 74 72 28 61 53 74 72 69 | 6e 67 31 29 3b 0d 09 09 |tr(aStri|ng1);...|
|000024e0| 73 70 72 69 6e 74 66 28 | 61 53 74 72 69 6e 67 32 |sprintf(|aString2|
|000024f0| 2c 20 22 66 75 6e 63 74 | 69 6f 6e 20 6e 6f 2e 20 |, "funct|ion no. |
|00002500| 25 64 22 2c 20 28 69 6e | 74 29 20 2a 70 29 3b 0d |%d", (in|t) *p);.|
|00002510| 09 09 43 74 6f 50 73 74 | 72 28 61 53 74 72 69 6e |..CtoPst|r(aStrin|
|00002520| 67 32 29 3b 0d 09 09 50 | 73 74 72 69 6e 67 43 6f |g2);...P|stringCo|
|00002530| 70 79 28 28 63 68 61 72 | 20 2a 29 74 68 65 4d 65 |py((char| *)theMe|
|00002540| 73 73 31 2c 20 28 63 68 | 61 72 20 2a 29 61 53 74 |ss1, (ch|ar *)aSt|
|00002550| 72 69 6e 67 31 29 3b 0d | 09 09 50 73 74 72 69 6e |ring1);.|..Pstrin|
|00002560| 67 43 6f 70 79 28 28 63 | 68 61 72 20 2a 29 74 68 |gCopy((c|har *)th|
|00002570| 65 4d 65 73 73 32 2c 20 | 28 63 68 61 72 20 2a 29 |eMess2, |(char *)|
|00002580| 61 53 74 72 69 6e 67 32 | 29 3b 0d 09 09 4f 53 45 |aString2|);...OSE|
|00002590| 72 72 6f 72 28 74 68 65 | 4d 65 73 73 31 2c 20 74 |rror(the|Mess1, t|
|000025a0| 68 65 4d 65 73 73 32 2c | 20 4e 49 4c 29 3b 0d 09 |heMess2,| NIL);..|
|000025b0| 7d 0d 09 2f 2a 20 67 65 | 74 20 68 65 72 65 20 69 |}../* ge|t here i|
|000025c0| 66 20 62 6f 74 68 20 66 | 75 6e 63 74 69 6f 6e 73 |f both f|unctions|
|000025d0| 20 61 72 65 20 64 65 66 | 69 6e 65 64 2c 20 66 69 | are def|ined, fi|
|000025e0| 67 75 72 65 20 6f 75 74 | 20 6f 70 65 72 61 74 69 |gure out| operati|
|000025f0| 6f 6e 20 2a 2f 0d 09 69 | 66 20 28 20 2a 28 70 2b |on */..i|f ( *(p+|
|00002600| 37 29 20 3e 20 30 2e 30 | 29 20 7b 0d 09 09 69 66 |7) > 0.0|) {...if|
|00002610| 20 28 20 28 2a 28 70 2b | 37 29 20 2d 20 28 69 6e | ( (*(p+|7) - (in|
|00002620| 74 29 2a 28 70 2b 37 29 | 29 20 3d 3d 20 30 2e 30 |t)*(p+7)|) == 0.0|
|00002630| 20 29 0d 09 09 09 74 68 | 65 4f 70 20 3d 20 41 44 | )....th|eOp = AD|
|00002640| 44 3b 0d 09 09 65 6c 73 | 65 0d 09 09 09 74 68 65 |D;...els|e....the|
|00002650| 4f 70 20 3d 20 4d 55 4c | 54 49 50 4c 59 3b 0d 09 |Op = MUL|TIPLY;..|
|00002660| 7d 0d 09 65 6c 73 65 20 | 69 66 20 28 20 2a 28 70 |}..else |if ( *(p|
|00002670| 2b 37 29 20 3c 20 30 2e | 30 29 20 7b 0d 09 09 69 |+7) < 0.|0) {...i|
|00002680| 66 20 28 20 28 2a 28 70 | 2b 37 29 20 2d 20 28 69 |f ( (*(p|+7) - (i|
|00002690| 6e 74 29 2a 28 70 2b 37 | 29 29 20 3d 3d 20 30 2e |nt)*(p+7|)) == 0.|
|000026a0| 30 20 29 0d 09 09 09 74 | 68 65 4f 70 20 3d 20 53 |0 )....t|heOp = S|
|000026b0| 55 42 54 52 41 43 54 3b | 0d 09 09 65 6c 73 65 0d |UBTRACT;|...else.|
|000026c0| 09 09 09 74 68 65 4f 70 | 20 3d 20 44 49 56 49 44 |...theOp| = DIVID|
|000026d0| 45 3b 0d 09 7d 0d 09 2f | 2a 20 67 65 74 20 73 74 |E;..}../|* get st|
|000026e0| 61 72 74 20 61 6e 64 20 | 65 6e 64 20 62 6f 75 6e |art and |end boun|
|000026f0| 64 73 20 2a 2f 0d 09 73 | 74 61 72 74 31 20 3d 20 |ds */..s|tart1 = |
|00002700| 28 69 6e 74 29 2a 28 70 | 2b 35 29 3b 0d 09 65 6e |(int)*(p|+5);..en|
|00002710| 64 31 20 3d 20 28 69 6e | 74 29 2a 28 70 2b 36 29 |d1 = (in|t)*(p+6)|
|00002720| 3b 0d 09 73 74 61 72 74 | 32 20 3d 20 28 69 6e 74 |;..start|2 = (int|
|00002730| 29 2a 28 70 2b 38 29 3b | 0d 09 65 6e 64 32 20 3d |)*(p+8);|..end2 =|
|00002740| 20 28 69 6e 74 29 2a 28 | 70 2b 39 29 3b 0d 09 69 | (int)*(|p+9);..i|
|00002750| 66 20 28 20 73 74 61 72 | 74 31 20 3e 20 2a 46 5b |f ( star|t1 > *F[|
|00002760| 66 6e 6f 31 5d 20 7c 7c | 20 73 74 61 72 74 31 20 |fno1] ||| start1 |
|00002770| 3c 20 31 29 20 7b 0d 09 | 09 73 70 72 69 6e 74 66 |< 1) {..|.sprintf|
|00002780| 28 61 53 74 72 69 6e 67 | 31 2c 20 22 67 65 6e 31 |(aString|1, "gen1|
|00002790| 32 2c 20 62 61 64 20 73 | 74 61 72 74 20 6c 6f 63 |2, bad s|tart loc|
|000027a0| 61 74 69 6f 6e 20 25 64 | 20 69 6e 20 66 69 72 73 |ation %d| in firs|
|000027b0| 74 20 66 75 6e 63 74 69 | 6f 6e 22 2c 20 73 74 61 |t functi|on", sta|
|000027c0| 72 74 31 29 3b 0d 09 09 | 43 74 6f 50 73 74 72 28 |rt1);...|CtoPstr(|
|000027d0| 61 53 74 72 69 6e 67 31 | 29 3b 0d 09 09 50 73 74 |aString1|);...Pst|
|000027e0| 72 69 6e 67 43 6f 70 79 | 28 28 63 68 61 72 20 2a |ringCopy|((char *|
|000027f0| 29 74 68 65 4d 65 73 73 | 31 2c 20 28 63 68 61 72 |)theMess|1, (char|
|00002800| 20 2a 29 61 53 74 72 69 | 6e 67 31 29 3b 0d 09 09 | *)aStri|ng1);...|
|00002810| 4f 53 45 72 72 6f 72 28 | 74 68 65 4d 65 73 73 31 |OSError(|theMess1|
|00002820| 2c 20 4e 49 4c 2c 20 4e | 49 4c 29 3b 0d 09 7d 0d |, NIL, N|IL);..}.|
|00002830| 09 69 66 20 28 20 65 6e | 64 31 20 3e 20 2a 46 5b |.if ( en|d1 > *F[|
|00002840| 66 6e 6f 31 5d 20 7c 7c | 20 65 6e 64 31 20 3c 20 |fno1] ||| end1 < |
|00002850| 31 29 20 7b 0d 09 09 73 | 70 72 69 6e 74 66 28 61 |1) {...s|printf(a|
|00002860| 53 74 72 69 6e 67 31 2c | 20 22 67 65 6e 31 32 2c |String1,| "gen12,|
|00002870| 20 62 61 64 20 65 6e 64 | 20 6c 6f 63 61 74 69 6f | bad end| locatio|
|00002880| 6e 20 25 64 20 69 6e 20 | 66 69 72 73 74 20 66 75 |n %d in |first fu|
|00002890| 6e 63 74 69 6f 6e 22 2c | 20 65 6e 64 31 29 3b 0d |nction",| end1);.|
|000028a0| 09 09 43 74 6f 50 73 74 | 72 28 61 53 74 72 69 6e |..CtoPst|r(aStrin|
|000028b0| 67 31 29 3b 0d 09 09 50 | 73 74 72 69 6e 67 43 6f |g1);...P|stringCo|
|000028c0| 70 79 28 28 63 68 61 72 | 20 2a 29 74 68 65 4d 65 |py((char| *)theMe|
|000028d0| 73 73 31 2c 20 28 63 68 | 61 72 20 2a 29 61 53 74 |ss1, (ch|ar *)aSt|
|000028e0| 72 69 6e 67 31 29 3b 0d | 09 09 4f 53 45 72 72 6f |ring1);.|..OSErro|
|000028f0| 72 28 74 68 65 4d 65 73 | 73 31 2c 20 4e 49 4c 2c |r(theMes|s1, NIL,|
|00002900| 20 4e 49 4c 29 3b 0d 09 | 7d 0d 09 69 66 20 28 20 | NIL);..|}..if ( |
|00002910| 73 74 61 72 74 32 20 3e | 20 2a 46 5b 66 6e 6f 32 |start2 >| *F[fno2|
|00002920| 5d 20 7c 7c 20 73 74 61 | 72 74 32 20 3c 20 31 29 |] || sta|rt2 < 1)|
|00002930| 20 7b 0d 09 09 73 70 72 | 69 6e 74 66 28 61 53 74 | {...spr|intf(aSt|
|00002940| 72 69 6e 67 31 2c 20 22 | 67 65 6e 31 32 2c 20 62 |ring1, "|gen12, b|
|00002950| 61 64 20 73 74 61 72 74 | 20 6c 6f 63 61 74 69 6f |ad start| locatio|
|00002960| 6e 20 25 64 20 69 6e 20 | 73 65 63 6f 6e 64 20 66 |n %d in |second f|
|00002970| 75 6e 63 74 69 6f 6e 22 | 2c 20 73 74 61 72 74 32 |unction"|, start2|
|00002980| 29 3b 0d 09 09 43 74 6f | 50 73 74 72 28 61 53 74 |);...Cto|Pstr(aSt|
|00002990| 72 69 6e 67 31 29 3b 0d | 09 09 50 73 74 72 69 6e |ring1);.|..Pstrin|
|000029a0| 67 43 6f 70 79 28 28 63 | 68 61 72 20 2a 29 74 68 |gCopy((c|har *)th|
|000029b0| 65 4d 65 73 73 31 2c 20 | 28 63 68 61 72 20 2a 29 |eMess1, |(char *)|
|000029c0| 61 53 74 72 69 6e 67 31 | 29 3b 0d 09 09 4f 53 45 |aString1|);...OSE|
|000029d0| 72 72 6f 72 28 74 68 65 | 4d 65 73 73 31 2c 20 4e |rror(the|Mess1, N|
|000029e0| 49 4c 2c 20 4e 49 4c 29 | 3b 0d 09 7d 0d 09 69 66 |IL, NIL)|;..}..if|
|000029f0| 20 28 20 73 74 61 72 74 | 32 20 3e 20 2a 46 5b 66 | ( start|2 > *F[f|
|00002a00| 6e 6f 32 5d 20 7c 7c 20 | 65 6e 64 32 20 3c 20 31 |no2] || |end2 < 1|
|00002a10| 29 20 7b 0d 09 09 73 70 | 72 69 6e 74 66 28 61 53 |) {...sp|rintf(aS|
|00002a20| 74 72 69 6e 67 31 2c 20 | 22 67 65 6e 31 32 2c 20 |tring1, |"gen12, |
|00002a30| 62 61 64 20 65 6e 64 20 | 6c 6f 63 61 74 69 6f 6e |bad end |location|
|00002a40| 20 25 64 20 69 6e 20 73 | 65 63 6f 6e 64 20 66 75 | %d in s|econd fu|
|00002a50| 6e 63 74 69 6f 6e 22 2c | 20 65 6e 64 32 29 3b 0d |nction",| end2);.|
|00002a60| 09 09 43 74 6f 50 73 74 | 72 28 61 53 74 72 69 6e |..CtoPst|r(aStrin|
|00002a70| 67 31 29 3b 0d 09 09 50 | 73 74 72 69 6e 67 43 6f |g1);...P|stringCo|
|00002a80| 70 79 28 28 63 68 61 72 | 20 2a 29 74 68 65 4d 65 |py((char| *)theMe|
|00002a90| 73 73 31 2c 20 28 63 68 | 61 72 20 2a 29 61 53 74 |ss1, (ch|ar *)aSt|
|00002aa0| 72 69 6e 67 31 29 3b 0d | 09 09 4f 53 45 72 72 6f |ring1);.|..OSErro|
|00002ab0| 72 28 74 68 65 4d 65 73 | 73 31 2c 20 4e 49 4c 2c |r(theMes|s1, NIL,|
|00002ac0| 20 4e 49 4c 29 3b 0d 09 | 7d 0d 09 0d 09 0d 2f 2a | NIL);..|}...../*|
|00002ad0| 20 61 73 73 75 6d 65 20 | 74 68 61 74 20 6c 65 6e | assume |that len|
|00002ae0| 67 74 68 73 20 61 72 65 | 20 74 68 65 20 73 61 6d |gths are| the sam|
|00002af0| 65 2c 20 77 65 27 6c 6c | 20 61 64 64 20 65 78 70 |e, we'll| add exp|
|00002b00| 61 6e 73 69 6f 6e 20 61 | 6e 64 20 63 6f 6e 74 72 |ansion a|nd contr|
|00002b10| 61 63 74 69 6f 6e 20 6c | 61 74 65 72 20 2a 2f 0d |action l|ater */.|
|00002b20| 09 66 6f 72 20 28 20 69 | 20 3d 20 73 74 61 72 74 |.for ( i| = start|
|00002b30| 31 3b 20 69 20 3c 3d 20 | 65 6e 64 31 3b 20 69 2b |1; i <= |end1; i+|
|00002b40| 2b 20 29 20 7b 0d 09 09 | 73 77 69 74 63 68 20 28 |+ ) {...|switch (|
|00002b50| 74 68 65 4f 70 20 29 20 | 7b 0d 09 09 09 63 61 73 |theOp ) |{....cas|
|00002b60| 65 20 41 44 44 3a 0d 09 | 09 09 09 2a 28 66 2b 69 |e ADD:..|...*(f+i|
|00002b70| 29 20 3d 20 2a 28 46 5b | 66 6e 6f 31 5d 2b 69 29 |) = *(F[|fno1]+i)|
|00002b80| 20 2b 20 2a 28 46 5b 66 | 6e 6f 32 5d 2b 69 29 3b | + *(F[f|no2]+i);|
|00002b90| 0d 09 09 09 09 62 72 65 | 61 6b 3b 0d 09 09 09 63 |.....bre|ak;....c|
|00002ba0| 61 73 65 20 53 55 42 54 | 52 41 43 54 3a 0d 09 09 |ase SUBT|RACT:...|
|00002bb0| 09 09 2a 28 66 2b 69 29 | 20 3d 20 2a 28 46 5b 66 |..*(f+i)| = *(F[f|
|00002bc0| 6e 6f 31 5d 2b 69 29 20 | 2d 20 2a 28 46 5b 66 6e |no1]+i) |- *(F[fn|
|00002bd0| 6f 32 5d 2b 69 29 3b 0d | 09 09 09 09 62 72 65 61 |o2]+i);.|....brea|
|00002be0| 6b 3b 0d 09 09 09 63 61 | 73 65 20 4d 55 4c 54 49 |k;....ca|se MULTI|
|00002bf0| 50 4c 59 3a 0d 09 09 09 | 09 2a 28 66 2b 69 29 20 |PLY:....|.*(f+i) |
|00002c00| 3d 20 2a 28 46 5b 66 6e | 6f 31 5d 2b 69 29 20 2a |= *(F[fn|o1]+i) *|
|00002c10| 20 2a 28 46 5b 66 6e 6f | 32 5d 2b 69 29 3b 0d 09 | *(F[fno|2]+i);..|
|00002c20| 09 09 09 62 72 65 61 6b | 3b 0d 09 09 09 63 61 73 |...break|;....cas|
|00002c30| 65 20 44 49 56 49 44 45 | 3a 0d 09 09 09 09 69 66 |e DIVIDE|:.....if|
|00002c40| 20 28 2a 28 46 5b 66 6e | 6f 32 5d 2b 69 29 20 21 | (*(F[fn|o2]+i) !|
|00002c50| 3d 20 30 2e 30 20 29 0d | 09 09 09 09 09 2a 28 66 |= 0.0 ).|.....*(f|
|00002c60| 2b 69 29 20 3d 20 2a 28 | 46 5b 66 6e 6f 31 5d 2b |+i) = *(|F[fno1]+|
|00002c70| 69 29 20 2d 20 2a 28 46 | 5b 66 6e 6f 32 5d 2b 69 |i) - *(F|[fno2]+i|
|00002c80| 29 3b 0d 09 09 09 09 65 | 6c 73 65 0d 09 09 09 09 |);.....e|lse.....|
|00002c90| 09 2a 28 66 2b 69 29 20 | 3d 20 2a 28 46 5b 66 6e |.*(f+i) |= *(F[fn|
|00002ca0| 6f 31 5d 2b 69 29 3b 0d | 09 09 09 09 62 72 65 61 |o1]+i);.|....brea|
|00002cb0| 6b 3b 0d 09 09 7d 0d 09 | 7d 0d 09 0d 09 69 66 20 |k;...}..|}....if |
|00002cc0| 28 20 73 63 61 6c 65 5f | 66 6c 61 67 20 29 0d 09 |( scale_|flag )..|
|00002cd0| 09 66 6e 73 63 6c 28 66 | 2c 20 6c 65 6e 29 3b 0d |.fnscl(f|, len);.|
|00002ce0| 7d 0d 0d 0d 76 6f 69 64 | 09 67 65 6e 32 30 28 6e |}...void|.gen20(n|
|00002cf0| 70 61 72 67 73 2c 20 70 | 2c 20 66 29 0d 09 64 6f |pargs, p|, f)..do|
|00002d00| 75 62 6c 65 20 2a 70 2c | 20 2a 66 3b 0d 09 69 6e |uble *p,| *f;..in|
|00002d10| 74 20 6e 70 61 72 67 73 | 3b 0d 7b 0d 2f 2a 20 72 |t npargs|;.{./* r|
|00002d20| 65 61 64 73 20 69 6e 20 | 61 20 66 69 6c 65 20 6f |eads in |a file o|
|00002d30| 66 20 66 6c 6f 61 74 69 | 6e 67 20 70 6f 69 6e 74 |f floati|ng point|
|00002d40| 20 76 61 6c 75 65 73 20 | 2a 2f 0d 09 72 65 67 69 | values |*/..regi|
|00002d50| 73 74 65 72 09 69 3b 0d | 09 69 6e 74 20 6c 65 6e |ster.i;.|.int len|
|00002d60| 20 3d 20 2a 66 3b 0d 09 | 53 46 52 65 70 6c 79 09 | = *f;..|SFReply.|
|00002d70| 09 72 65 70 6c 79 3b 0d | 09 53 46 54 79 70 65 4c |.reply;.|.SFTypeL|
|00002d80| 69 73 74 09 74 79 70 65 | 73 3b 0d 09 50 6f 69 6e |ist.type|s;..Poin|
|00002d90| 74 09 09 77 68 65 72 65 | 3b 0d 09 66 6c 6f 61 74 |t..where|;..float|
|00002da0| 09 09 2a 74 68 65 46 6c | 6f 61 74 73 3b 0d 09 69 |..*theFl|oats;..i|
|00002db0| 6e 74 09 09 09 74 68 65 | 52 65 66 4e 75 6d 3b 0d |nt...the|RefNum;.|
|00002dc0| 09 6c 6f 6e 67 09 09 63 | 6f 75 6e 74 3b 0d 09 0d |.long..c|ount;...|
|00002dd0| 09 53 65 74 50 74 28 26 | 77 68 65 72 65 2c 20 31 |.SetPt(&|where, 1|
|00002de0| 30 30 2c 20 31 30 30 29 | 3b 0d 09 53 46 47 65 74 |00, 100)|;..SFGet|
|00002df0| 46 69 6c 65 28 77 68 65 | 72 65 2c 20 4e 49 4c 2c |File(whe|re, NIL,|
|00002e00| 20 4e 49 4c 2c 20 2d 31 | 2c 20 4e 49 4c 2c 20 4e | NIL, -1|, NIL, N|
|00002e10| 49 4c 2c 20 26 72 65 70 | 6c 79 29 3b 0d 09 69 66 |IL, &rep|ly);..if|
|00002e20| 28 21 72 65 70 6c 79 2e | 67 6f 6f 64 29 20 7b 0d |(!reply.|good) {.|
|00002e30| 09 09 72 65 74 75 72 6e | 3b 0d 09 7d 0d 09 63 6f |..return|;..}..co|
|00002e40| 75 6e 74 20 3d 20 28 66 | 6c 6f 61 74 29 6c 65 6e |unt = (f|loat)len|
|00002e50| 20 2a 20 73 69 7a 65 6f | 66 28 66 6c 6f 61 74 29 | * sizeo|f(float)|
|00002e60| 3b 0d 09 74 68 65 46 6c | 6f 61 74 73 20 3d 20 28 |;..theFl|oats = (|
|00002e70| 66 6c 6f 61 74 20 2a 29 | 20 4e 65 77 50 74 72 28 |float *)| NewPtr(|
|00002e80| 73 69 7a 65 6f 66 28 66 | 6c 6f 61 74 29 20 2a 20 |sizeof(f|loat) * |
|00002e90| 6c 65 6e 29 3b 0d 09 69 | 66 20 28 20 28 74 68 65 |len);..i|f ( (the|
|00002ea0| 45 72 72 20 3d 20 4d 65 | 6d 45 72 72 6f 72 28 29 |Err = Me|mError()|
|00002eb0| 29 20 20 21 3d 20 6e 6f | 45 72 72 20 29 7b 0d 09 |) != no|Err ){..|
|00002ec0| 09 50 73 74 72 69 6e 67 | 43 6f 70 79 28 28 63 68 |.Pstring|Copy((ch|
|00002ed0| 61 72 20 2a 29 74 68 65 | 4d 65 73 73 31 2c 20 22 |ar *)the|Mess1, "|
|00002ee0| 5c 70 45 72 72 6f 72 20 | 61 6c 6c 6f 63 61 74 69 |\pError |allocati|
|00002ef0| 6e 67 20 6d 65 6d 6f 72 | 79 20 69 6e 20 67 65 6e |ng memor|y in gen|
|00002f00| 32 30 22 29 3b 0d 09 09 | 4f 53 45 72 72 6f 72 28 |20");...|OSError(|
|00002f10| 74 68 65 4d 65 73 73 31 | 2c 20 4e 49 4c 2c 20 4e |theMess1|, NIL, N|
|00002f20| 49 4c 29 3b 0d 09 7d 0d | 09 74 68 65 45 72 72 20 |IL);..}.|.theErr |
|00002f30| 3d 20 46 53 4f 70 65 6e | 28 72 65 70 6c 79 2e 66 |= FSOpen|(reply.f|
|00002f40| 4e 61 6d 65 2c 20 72 65 | 70 6c 79 2e 76 52 65 66 |Name, re|ply.vRef|
|00002f50| 4e 75 6d 2c 20 26 74 68 | 65 52 65 66 4e 75 6d 29 |Num, &th|eRefNum)|
|00002f60| 3b 0d 09 74 68 65 45 72 | 72 20 3d 20 46 53 52 65 |;..theEr|r = FSRe|
|00002f70| 61 64 28 74 68 65 52 65 | 66 4e 75 6d 2c 20 26 63 |ad(theRe|fNum, &c|
|00002f80| 6f 75 6e 74 2c 20 74 68 | 65 46 6c 6f 61 74 73 29 |ount, th|eFloats)|
|00002f90| 3b 0d 09 74 68 65 45 72 | 72 20 3d 20 46 53 43 6c |;..theEr|r = FSCl|
|00002fa0| 6f 73 65 28 74 68 65 52 | 65 66 4e 75 6d 29 3b 0d |ose(theR|efNum);.|
|00002fb0| 09 69 66 20 28 20 74 68 | 65 45 72 72 20 21 3d 20 |.if ( th|eErr != |
|00002fc0| 6e 6f 45 72 72 20 29 20 | 7b 0d 09 09 44 69 73 70 |noErr ) |{...Disp|
|00002fd0| 6f 73 50 74 72 28 28 50 | 74 72 29 74 68 65 46 6c |osPtr((P|tr)theFl|
|00002fe0| 6f 61 74 73 29 3b 0d 09 | 09 72 65 74 75 72 6e 3b |oats);..|.return;|
|00002ff0| 0d 09 7d 0d 0d 09 6c 65 | 6e 20 3d 20 28 63 6f 75 |..}...le|n = (cou|
|00003000| 6e 74 2f 73 69 7a 65 6f | 66 28 6c 6f 6e 67 29 29 |nt/sizeo|f(long))|
|00003010| 3b 0d 09 66 6f 72 20 28 | 20 69 20 3d 20 31 3b 20 |;..for (| i = 1; |
|00003020| 69 20 3c 20 6c 65 6e 2b | 31 3b 20 69 2b 2b 20 29 |i < len+|1; i++ )|
|00003030| 0d 09 09 2a 28 66 2b 69 | 29 20 3d 20 28 64 6f 75 |...*(f+i|) = (dou|
|00003040| 62 6c 65 29 74 68 65 46 | 6c 6f 61 74 73 5b 69 2d |ble)theF|loats[i-|
|00003050| 31 5d 3b 0d 09 09 0d 09 | 69 66 20 28 20 73 63 61 |1];.....|if ( sca|
|00003060| 6c 65 5f 66 6c 61 67 20 | 29 0d 09 09 66 6e 73 63 |le_flag |)...fnsc|
|00003070| 6c 28 66 2c 20 6c 65 6e | 29 3b 0d 09 44 69 73 70 |l(f, len|);..Disp|
|00003080| 6f 73 50 74 72 28 28 50 | 74 72 29 74 68 65 46 6c |osPtr((P|tr)theFl|
|00003090| 6f 61 74 73 29 3b 0d 7d | 0d 0d 0d 77 72 69 74 65 |oats);.}|...write|
|000030a0| 5f 66 75 6e 63 28 66 6e | 6f 2c 20 66 29 0d 09 64 |_func(fn|o, f)..d|
|000030b0| 6f 75 62 6c 65 20 2a 66 | 3b 0d 09 69 6e 74 20 66 |ouble *f|;..int f|
|000030c0| 6e 6f 3b 0d 7b 0d 09 65 | 78 74 65 72 6e 09 09 63 |no;.{..e|xtern..c|
|000030d0| 68 61 72 09 09 74 68 65 | 4d 65 73 73 61 67 65 5b |har..the|Message[|
|000030e0| 4d 41 58 53 54 52 49 4e | 47 5d 3b 0d 09 65 78 74 |MAXSTRIN|G];..ext|
|000030f0| 65 72 6e 09 69 6e 74 09 | 6f 75 74 33 5f 66 6c 61 |ern.int.|out3_fla|
|00003100| 67 3b 0d 09 72 65 67 69 | 73 74 65 72 20 69 6e 74 |g;..regi|ster int|
|00003110| 20 69 3b 0d 09 69 6e 74 | 20 6c 65 6e 20 3d 20 2a | i;..int| len = *|
|00003120| 66 3b 0d 0d 09 69 66 20 | 28 20 6f 75 74 33 5f 66 |f;...if |( out3_f|
|00003130| 6c 61 67 20 29 20 7b 0d | 09 09 73 70 72 69 6e 74 |lag ) {.|..sprint|
|00003140| 66 28 28 63 68 61 72 20 | 2a 29 74 68 65 4d 65 73 |f((char |*)theMes|
|00003150| 73 31 2c 20 22 46 75 6e | 63 74 69 6f 6e 20 6e 6f |s1, "Fun|ction no|
|00003160| 2e 20 25 64 20 6c 65 6e | 67 74 68 20 69 73 20 20 |. %d len|gth is |
|00003170| 25 64 22 2c 20 66 6e 6f | 2c 20 6c 65 6e 20 29 3b |%d", fno|, len );|
|00003180| 0d 09 09 52 65 70 6f 72 | 74 28 28 63 68 61 72 20 |...Repor|t((char |
|00003190| 2a 29 74 68 65 4d 65 73 | 73 31 29 3b 0d 09 09 66 |*)theMes|s1);...f|
|000031a0| 6f 72 20 28 20 69 20 3d | 20 31 3b 20 69 20 3c 20 |or ( i =| 1; i < |
|000031b0| 6c 65 6e 2b 31 3b 20 69 | 2b 2b 20 29 20 7b 0d 09 |len+1; i|++ ) {..|
|000031c0| 09 09 73 70 72 69 6e 74 | 66 28 28 63 68 61 72 20 |..sprint|f((char |
|000031d0| 2a 29 74 68 65 4d 65 73 | 73 31 2c 20 22 25 64 20 |*)theMes|s1, "%d |
|000031e0| 25 66 5c 6e 22 2c 20 69 | 2c 20 2a 28 66 2b 69 29 |%f\n", i|, *(f+i)|
|000031f0| 20 29 3b 0d 09 09 09 52 | 65 70 6f 72 74 28 28 63 | );....R|eport((c|
|00003200| 68 61 72 20 2a 29 74 68 | 65 4d 65 73 73 31 29 3b |har *)th|eMess1);|
|00003210| 0d 09 09 7d 0d 09 09 52 | 65 70 6f 72 74 28 22 2d |...}...R|eport("-|
|00003220| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003230| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003240| 2d 2d 5c 6e 22 29 3b 0d | 09 7d 0d 7d 0d 0d 0d 0d |--\n");.|.}.}....|
|00003250| 76 6f 69 64 09 66 6e 73 | 63 6c 28 66 2c 20 6c 65 |void.fns|cl(f, le|
|00003260| 6e 29 0d 09 64 6f 75 62 | 6c 65 20 2a 66 3b 0d 09 |n)..doub|le *f;..|
|00003270| 69 6e 74 20 6c 65 6e 3b | 0d 7b 0d 09 72 65 67 69 |int len;|.{..regi|
|00003280| 73 74 65 72 20 69 6e 74 | 20 69 3b 0d 09 64 6f 75 |ster int| i;..dou|
|00003290| 62 6c 65 20 77 6d 61 78 | 2c 78 6d 61 78 20 3d 20 |ble wmax|,xmax = |
|000032a0| 30 3b 0d 0d 09 66 6f 72 | 28 69 20 3d 20 31 3b 20 |0;...for|(i = 1; |
|000032b0| 69 20 3c 20 6c 65 6e 2b | 31 3b 20 69 2b 2b 20 29 |i < len+|1; i++ )|
|000032c0| 20 7b 0d 09 09 69 66 20 | 28 28 77 6d 61 78 20 3d | {...if |((wmax =|
|000032d0| 20 66 61 62 73 28 2a 28 | 66 2b 69 29 29 29 20 3e | fabs(*(|f+i))) >|
|000032e0| 20 78 6d 61 78 29 20 78 | 6d 61 78 20 3d 20 77 6d | xmax) x|max = wm|
|000032f0| 61 78 3b 0d 09 7d 0d 09 | 66 6f 72 28 69 20 3d 20 |ax;..}..|for(i = |
|00003300| 31 3b 20 69 20 3c 20 6c | 65 6e 2b 31 3b 20 69 2b |1; i < l|en+1; i+|
|00003310| 2b 20 29 20 7b 0d 09 09 | 2a 28 66 2b 69 29 20 2f |+ ) {...|*(f+i) /|
|00003320| 3d 20 78 6d 61 78 3b 0d | 09 7d 0d 7d 0d 0d 0d 2f |= xmax;.|.}.}.../|
|00003330| 2a 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |*-------|--------|
|00003340| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003350| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003360| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003370| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003380| 2a 2f 0d 0d 0d 00 00 00 | 00 00 00 00 00 00 00 00 |*/......|........|
|00003390| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000033a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000033b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000033c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000033d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000033e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000033f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003400| 00 00 01 00 00 00 01 16 | 00 00 00 16 00 00 00 46 |........|.......F|
|00003410| 20 2b 3d 20 32 3b 0d 09 | 7d 0d 09 2a 28 66 2b 69 | += 2;..|}..*(f+i|
|00003420| 29 20 3d 20 79 32 3b 0d | 09 66 6e 73 63 6c 28 66 |) = y2;.|.fnscl(f|
|00003430| 05 67 65 6e 2e 63 02 00 | 00 00 00 00 00 00 00 00 |.gen.c..|........|
|00003440| 00 00 00 00 00 00 00 00 | 00 00 00 00 0c 19 00 00 |........|........|
|00003450| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003460| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003470| 00 00 a3 14 39 20 00 00 | 00 00 00 00 01 5c 2d 2d |....9 ..|.....\--|
|00003480| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2a 2f 0d 0d 0d |--------|---*/...|
|00003490| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000034a0| 2d 2d 2a 2f 0d 0d 0d 6a | 20 3d 20 69 20 2d 20 6a |--*/...j| = i - j|
|000034b0| 3b 0d 09 09 69 66 20 28 | 20 6d 20 3c 3d 20 69 20 |;...if (| m <= i |
|000034c0| 29 20 7b 0d 09 09 09 63 | 20 3d 20 70 6f 77 28 20 |) {....c| = pow( |
|000034d0| 28 79 32 2f 79 31 29 2c | 20 28 31 2e 30 2f 6a 29 |(y2/y1),| (1.0/j)|
|000034e0| 29 3b 0d 2f 2a 09 09 09 | 63 20 3d 20 70 6f 77 28 |);./*...|c = pow(|
|000034f0| 20 28 79 32 2f 79 31 29 | 2c 20 28 31 2e 30 2f 28 | (y2/y1)|, (1.0/(|
|00003500| 00 00 00 04 00 06 00 04 | 00 00 00 0a 00 0a 07 43 |........|.......C|
|00003510| 6f 75 72 69 65 72 00 00 | 01 00 00 00 01 16 00 00 |ourier..|........|
|00003520| 00 16 00 00 00 46 00 32 | 48 c4 05 26 00 00 00 1c |.....F.2|H..&....|
|00003530| 00 46 00 01 45 54 41 42 | 00 00 00 12 45 46 4e 54 |.F..ETAB|....EFNT|
|00003540| 00 00 00 1e 03 ec ff ff | 00 00 00 00 00 32 48 14 |........|.....2H.|
|00003550| 03 eb ff ff 00 00 00 08 | 00 32 48 0c 00 00 00 00 |........|.2H.....|
|00003560| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003570| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+